我应该在移动它之前关闭文件吗?

我有这样的代码:我应该在移动它之前关闭文件吗?

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

不能移动的文件,因为有人(你)已经持有它。您需要先关闭文件,然后才能移动它。

回答:

最佳实践与fileclosemove,因为如果你不close那么它可能在某些操作系统创建的问题,像Windows

为了让您的代码更加便携,close档案在move之前。

以上是 我应该在移动它之前关闭文件吗? 的全部内容, 来源链接: utcz.com/qa/265870.html

回到顶部