Yui*_*Yui 11 python file-io try-catch
我想创建一个文件; 如果它已经存在我想删除它并重新创建它.我尝试这样做,但它抛出Win32错误.我究竟做错了什么?
try:
with open(os.path.expanduser('~') + '\Desktop\input.txt'):
os.remove(os.path.expanduser('~') + '\Desktop\input.txt')
f1 = open(os.path.expanduser('~') + '\Desktop\input.txt', 'a')
except IOError:
f1 = open(os.path.expanduser('~') + '\Desktop\input.txt', 'a')
Run Code Online (Sandbox Code Playgroud)
Aya*_*Aya 26
您正在尝试删除打开的文件,以及os.remove()状态文档...
在Windows上,尝试删除正在使用的文件会导致引发异常
您可以将代码更改为...
filename = os.path.expanduser('~') + '\Desktop\input.txt'
try:
os.remove(filename)
except OSError:
pass
f1 = open(filename, 'a')
Run Code Online (Sandbox Code Playgroud)
......或者你可以用......取而代之
f1 = open(os.path.expanduser('~') + '\Desktop\input.txt', 'w')
Run Code Online (Sandbox Code Playgroud)
...在打开之前将文件截断为零长度.