roc*_*101 32
在大多数情况下,不关闭文件是一个坏主意,原因如下:
它将您的程序放在垃圾收集器手中 - 虽然理论上的文件将自动关闭,但可能无法关闭.Python 3和Cpython通常在垃圾收集方面做得非常好,但并非总是如此,而其他变体通常会对它产生影响.
它可以减慢你的程序.打开太多东西,因此RAM中更多的空间会影响性能.
在大多数情况下,python中文件的许多更改在文件关闭之后才会生效,因此如果脚本编辑,保持打开状态并读取文件,则不会看到编辑.
理论上,您可以限制可以打开的文件数量.
正如@sai在下面所述,Windows将打开的文件视为已锁定,因此AV扫描程序或其他python脚本等合法内容无法读取该文件.
这是一个草率的编程(然后再次,我不是最好记住自己关闭文件!)
希望这可以帮助!
小智 6
找到了一些好的答案:
(1)这是一个良好的编程习惯.如果您不自己关闭它们,Python最终将为您关闭它们.在某些版本的Python中,可能就是它们不再被使用的瞬间; 在其他情况下,它可能不会发生很长一段时间.在某些情况下,它可能根本不会发生.
(2)写入文件时,在文件关闭之前,数据可能无法写入磁盘.当您说"output.write(...)"时,数据通常会缓存在内存中,并且在文件关闭之前不会点击硬盘驱动器.保持文件打开的时间越长,丢失数据的可能性就越大.
(3)由于您的操作系统对任何一个瞬间可以保持打开的文件句柄有严格的限制,最好养成在不需要时关闭它们的习惯,而不是等待"女仆服务"到在你之后清理.
(4)此外,某些操作系统(特别是Windows)将打开的文件视为已锁定和私有.当你打开一个文件时,没有其他程序也可以打开它,甚至只是为了读取数据.这会破坏备份程序,防病毒扫描程序等.
http://python.6.x6.nabble.com/Tutor-Why-do-you-have-to-close-files-td4341928.html https://docs.python.org/2/tutorial/inputoutput.html
打开的文件使用资源并且可能被锁定,以防止其他程序使用它们。无论如何,with在读取文件时使用它是一种很好的做法,因为它会为您关闭文件。
with open('file', 'r') as f:
read_data = f.read()
Run Code Online (Sandbox Code Playgroud)
这是一个如果您将文件保持打开状态可能会发生的“坏事”示例。在 Python 解释器中打开一个用于写入的文件,向其中写入一个字符串,然后在文本编辑器中打开该文件。在我的系统上,文件将是空的,直到我关闭文件句柄。
| 归档时间: |
|
| 查看次数: |
17611 次 |
| 最近记录: |