Python的文件IO操作占用了哪些资源?

时间:2016-03-04 05:35:38

标签: python

Python的文档说

  

完成文件后,请调用f.close()将其关闭并释放打开文件占用的所有系统资源。在调用f.close()之后,尝试使用该文件对象将自动失败。

Python文件IO如何工作?为什么关闭文件意味着什么? Python的文件IO操作占用了哪些资源?

2 个答案:

答案 0 :(得分:1)

一般来说,您的操作系统对可以为特定进程打开的文件句柄数量有限制。这不是python特有的,而是针对在该系统上运行的任何编程语言。

例如,在* nix系统上,ulimit -n会告诉您可以打开的文件句柄数。

关闭文件句柄可确保您不会遇到错误,因为操作系统拒绝让您打开另一个文件。 : - 。)

答案 1 :(得分:0)

也许这个比喻会有所帮助。

文件是一本书。

你打开一本书 - 在编程中,这将创建some reference variable in memory以指向读/写模式中的“首页”,或者在追加模式中指向“最后一页”。

当“书”打开时,你可以“阅读”它并“翻阅页面” - 在Python中,这是由open然后readreadlines完成的,seek等。

“书”仍然打开,然后占据了打开的空间。 - 在编程中,这是通用操作系统内存。把它想象成桌面上的空间。

当你“关闭书”时,它所占据的空间就被释放了。想一想这就像将书从书桌上取下并放回架子上一样。

因为已经关闭,所以无法再次关闭。

不关闭“书”并打开更多“书籍”会导致你的空间不足,因为你只能在书桌上摆放这么多书 - 在编程中,这可以与resource leak相媲美。