我应该在移动它之前关闭文件吗?
我有这样的代码:我应该在移动它之前关闭文件吗?
with open('foo.txt') as file: ...do something with file...
...move foo.txt to another place when it's still open...
有没有与任何问题?
回答:
这取决于操作系统。在基于Unix的系统中,这通常是安全的(您可以在打开文件的同时移动甚至删除文件)。如果您尝试移动/删除打开的文件,Windows将产生Access Denied错误。
所以,最安全和便携的方法是先关闭文件。请注意,with
子句会自动关闭文件,因此您只需执行以外的块with
块。
回答:
在Windows上:
>>> import os >>> with open('old.txt') as file:
os.rename('old.txt', 'new.txt')
Traceback (most recent call last):
File "<pyshell#4>", line 2, in <module>
os.rename('test.txt', 'newtest.txt')
WindowsError: [Error 32] The process cannot access the file because it is being used by another process
不能移动的文件,因为有人(你)已经持有它。您需要先关闭文件,然后才能移动它。
回答:
最佳实践与file
是close
和move
,因为如果你不close
那么它可能在某些操作系统创建的问题,像Windows
。
为了让您的代码更加便携,close
档案在move
之前。
以上是 我应该在移动它之前关闭文件吗? 的全部内容, 来源链接: utcz.com/qa/265870.html