Python的文件说Python的文件IO操作占用了哪些资源?
当你和一个文件来完成,调用f.close()将其关闭并释放被打开的文件占用的系统资源。调用f.close()后,尝试使用该文件对象将自动失败。
Python文件IO如何工作以及为什么它意味着关闭文件? Python的文件IO操作占用了哪些资源?
Python的文件说Python的文件IO操作占用了哪些资源?
当你和一个文件来完成,调用f.close()将其关闭并释放被打开的文件占用的系统资源。调用f.close()后,尝试使用该文件对象将自动失败。
Python文件IO如何工作以及为什么它意味着关闭文件? Python的文件IO操作占用了哪些资源?
一般而言,您的操作系统对可以为特定进程打开的文件句柄数量有限制。这不是特定于python,而是任何在该系统上运行的编程语言。
例如,在* nix系统上,ulimit -n
会告诉您可以打开的文件句柄的数量。
关闭文件句柄可确保您不会遇到错误,因为操作系统拒绝让您打开另一个文件。 :-)。
也许这个比喻会有所帮助。
文件是一本书。
你打开一本书 - 在编程时,这将创建some reference variable in memory指向读/写模式的“首页”或追加模式的“最后一页”。
而“书”是开放的,你可以“读”,它和“翻阅网页” - 在Python中,这是由open
然后read
,readlines
,seek
等
完成的“书“保持打开状态,然后占用一些空间。 - 在编程时,这是一般的操作系统内存。想想你桌上的这个空间。
当你“关闭本书”时,它占据的空间就被释放了。考虑一下,就像把书从书桌上拿下来,放回书架上。
再次关门是不可能的,因为它已经关闭了。
未关闭“书本”并打开更多“书本”会导致空间不足,因为您只能在桌子上放置如此多的书籍 - 在编程时,这可能与resource leak相差无几。
内存指针打开。您需要关闭它们以防止内存泄漏。 –
什么是内存指针? – mango
对内存中的位置的引用 - [指针](https://en.wikipedia.org/wiki/Pointer_(computer_programming)) –