Python的文档说
完成文件后,请调用f.close()将其关闭并释放打开文件占用的所有系统资源。在调用f.close()之后,尝试使用该文件对象将自动失败。
Python文件IO如何工作?为什么关闭文件意味着什么? Python的文件IO操作占用了哪些资源?
答案 0 :(得分:1)
一般来说,您的操作系统对可以为特定进程打开的文件句柄数量有限制。这不是python特有的,而是针对在该系统上运行的任何编程语言。
例如,在* nix系统上,ulimit -n
会告诉您可以打开的文件句柄数。
关闭文件句柄可确保您不会遇到错误,因为操作系统拒绝让您打开另一个文件。 : - 。)
答案 1 :(得分:0)
也许这个比喻会有所帮助。
文件是一本书。
你打开一本书 - 在编程中,这将创建some reference variable in memory以指向读/写模式中的“首页”,或者在追加模式中指向“最后一页”。
当“书”打开时,你可以“阅读”它并“翻阅页面” - 在Python中,这是由open
然后read
,readlines
完成的,seek
等。
“书”仍然打开,然后占据了打开的空间。 - 在编程中,这是通用操作系统内存。把它想象成桌面上的空间。
当你“关闭书”时,它所占据的空间就被释放了。想一想这就像将书从书桌上取下并放回架子上一样。
因为已经关闭,所以无法再次关闭。
不关闭“书”并打开更多“书籍”会导致你的空间不足,因为你只能在书桌上摆放这么多书 - 在编程中,这可以与resource leak相媲美。