关于删除文件的Python:删除文件(如果存在)。 如果没有,请创建它

Delete a file if it exists. If it doesn't, create it

标题说明一切。

我的代码:

1
2
3
4
5
6
7
8
 try:
        os.remove("NumPyResults.txt")

 except IOError:

        with open("NumPyResults.txt", 'a') as results_file:
            outfile = csv.writer(results_file)
            outfile.writerow(.......)

之所以在append中是因为它在一个函数中并且被多次调用。因此,每次运行程序时,我都需要一个新文件,方法是删除旧文件并写入新文件。

但是,这不会创建新文件。我还在运行的目录中创建了该文件,它也不会删除该文件。

我得到

1
WindowsError: [Error 2] The system cannot find the file specified: 'NumPyResults.txt'


对于缺少的文件名,我得到的异常是"oserror",而不是"ioerror"。如果你得到了异常,你只想通过,文件写入应该在try块之外。

1
2
3
4
5
6
7
8
try:
    os.remove("NumPyResults.txt")
except OSError:
    pass

with open("NumPyResults.txt", 'a') as results_file:
    results_file.write('hi
'
)