gpt4 book ai didi

python - os.path.exists 在 Windows 上对名为 "CON.csv"的文件给出误报

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:24 26 4
gpt4 key购买 nike

我正在用 Python 做一些小规模的项目来学习它,其中之一是写入和读取 .csv 文件。我写了一个脚本,应该检查文件是否存在,如果没有创建一个具有正确标题的文件,然后将数据放入其中。如果它确实存在,它应该将数据添加到现有的 .csv 文件中。这是代码片段:

    if not os.path.exists('crypto/{}.csv'.format(ticker)):
with open('crypto/{}.csv'.format(ticker), 'w', newline='') as file:
writer = csv.writer(file)
logger.logChanges('{} ({}) added'.format(name, ticker), True)
writer.writerow(['price', 'vol24h', 'mCap', 'supply', 'change1h', 'change1d', 'change7d', 'change1m'])
else:
print('{} exists'.format(ticker))

with open('crypto/{}.csv'.format(ticker), 'a', newline='') as file:
writer = csv.writer(file)
writer.writerow([price, vol24h, mCap, supply, change1h, change1d, change7d, change1m])

在要求检查 CON.csv 是否存在(事实并非如此)之前,一切正常,它说该文件存在并转到以下位尝试写入不存在的文件。然后它给出以下错误:

ValueError: Must have exactly one of read or write mode

据我了解,这意味着它正在尝试读取和写入?我查看了该文件夹,CON.csv 不在其中,但是有一个名为 QTCON.csv 的文件,这可能是误报的原因吗?我该如何解决这个问题?

编辑:

Traceback (most recent call last):
File "c:/Users/lennart/Desktop/PythonProject/.vscode/crypto.py", line 62, in <module>
grabInfo()
File "c:/Users/lennart/Desktop/PythonProject/.vscode/crypto.py", line 55, in grabInfo
with open('crypto/{}.csv'.format(ticker), 'a', newline='') as file:
ValueError: Must have exactly one of read or write mode

最佳答案

在 Windows 中,CON 是一个特殊文件。如果没记错的话,它总是以任何文件扩展名无处不在。这是 DOS 的遗留问题。我不记得它的用途,但我认为它是用于低级控制台 I/O 的。有一阵子了。 Retrocomputing Exchange 可能会告诉您比您想知道的更多的信息。

我认为如果您将文件命名为几乎任何其他名称(PRN 或 NUL 或其他一些除外),您的脚本将按预期运行。

有关特殊文件的更多信息:https://superuser.com/a/613335

并且:https://en.wikipedia.org/wiki/Device_file#MS-DOS

关于python - os.path.exists 在 Windows 上对名为 "CON.csv"的文件给出误报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59345760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com