如果文件存在,则删除该文件。如果没有,请创建它
Posted
技术标签:
【中文标题】如果文件存在,则删除该文件。如果没有,请创建它【英文标题】:Delete a file if it exists. If it doesn't, create it 【发布时间】:2015-10-31 03:06:58 【问题描述】:标题说明一切。
我的代码:
try:
os.remove("NumPyResults.txt")
except IOError:
with open("NumPyResults.txt", 'a') as results_file:
outfile = csv.writer(results_file)
outfile.writerow(.......)
之所以在 append 中是因为它在一个函数中并且被多次调用。所以我每次运行程序时都想要一个新文件,删除旧文件并写入新文件。
但是,这不会创建新文件。我还在运行的目录中创建了该文件,它也没有删除它。
我明白了
WindowsError: [Error 2] The system cannot find the file specified: 'NumPyResults.txt'
【问题讨论】:
***.com/questions/2967194/…append
不会根据定义删除文件
为什么不直接使用open(path, 'w')
?它会删除旧文件并重写它。
这一切都在一个函数里面?不是每次打电话都会删除文件吗?
【参考方案1】:
我得到的丢失文件名的异常是“OSError”,而不是“IOError”。 而且如果遇到异常,只想通过,文件写入应该在try块之外。
try:
os.remove("NumPyResults.txt")
except OSError:
pass
with open("NumPyResults.txt", 'a') as results_file:
results_file.write('hi\n')
【讨论】:
不管怎样,我在 python3.4 上得到FileNotFoundError
在 python2.7 上得到 OSError
以上是关于如果文件存在,则删除该文件。如果没有,请创建它的主要内容,如果未能解决你的问题,请参考以下文章
如果不存在,则创建一个 .txt 文件,如果它确实追加一个新行
Java以缓冲字符流向文件写入内容(如果文件存在则删除,否则先创建后写入)