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)) –