此问题已在此处找到答案:
如何检查文件是否存在且没有异常((44个答案)
昨天关门了。
我试图编写一段代码,每次运行python3脚本时都会打开一个新文件。
我正在使用递增的数字构造文件名。
例如,以下是应生成的有效文件名的一些示例:
output_0.csv
output_1.csv
output_2.csv
output_3.csv
在下一次运行脚本时,要使用的下一个文件名应为 output_4.csv
.
在c/c++中,我将按以下方式执行此操作:
进入无限循环
尝试在“读取”模式下打开第一个文件名
如果文件已打开,请增加文件名编号并重复
如果文件未打开,请中断循环并以“写入”模式重新打开文件
这在Python3中似乎不起作用,因为在读取模式下打开不存在的文件会引发异常。
一种可能的解决方案是将打开的文件代码块移动到try-catch块中。但这似乎不是一个特别优雅的解决方案。
以下是我迄今为止在代码中尝试的内容
# open a file to store output data
filename_base = "output"
filename_ext = "csv"
filename_number = 0
while True:
filename_full = f"{filename_base}_{filename_number}.{filename_ext}"
with open(filename_full, "r") as f:
if f.closed:
print(f"Writing data to {filename_full}")
break
else:
print(f"File {filename_full} exists")
filename_number += 1
with open(filename_full, "w") as f:
pass
如上所述,当试图打开“读取”模式下不存在的文件时,此代码崩溃。
5条答案
按热度按时间bz4sfanl1#
使用pathlib,您可以使用
Path.is_file()
返回True
当它遇到文件或指向文件的符号链接时。当文件不存在时,应该退出此循环,以便您可以打开它进行写入。
1wnzp6jl2#
您可以在使用之前检查文件是否存在
qrjkbowd3#
您可以使用操作系统模块检查文件路径是否为文件,然后将其打开:
u1ehiz5o4#
这应该起作用:
qacovj5a5#
你可以
os.path.exists
例如,检查文件是否已存在或者你的名字
你很有规律,对吗
glob.glob
像这样