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

2024-05-01 21:20:39 发布

您现在位置:Python中文网/ 问答频道 /正文

Python的文档说

When you’re done with a file, call f.close() to close it and free up any system resources taken up by the open file. After calling f.close(), attempts to use the file object will automatically fail.

Python文件IO是如何工作的,为什么要关闭一个文件?Python的文件IO操作占用了哪些资源


Tags: 文件theto文档ioreyouclose
2条回答

也许这个类比会有所帮助

档案就是一本书

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

当“书”打开时,您可以用Python“阅读”它和“翻页”,这是通过open然后readreadlinesseek等来完成的

“书”保持打开状态,然后在打开的地方占据一些空间。在编程中,这是通用的操作系统内存。把这个想象成你书桌上的空间

当你“合上书”时,它占据的空间就被释放了。想想这个,比如把书从桌子上拿下来,放回书架上,别挡道

无法再次关闭,因为它已关闭

不合上“书”打开更多“书”会导致空间不足,因为在编程中只能将这么多书放在桌子上,这与resource leak相当

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

例如,在*nix系统上,^{}将告诉您可以打开的文件句柄数

关闭文件句柄可确保不会因为操作系统拒绝您打开另一个文件而出错。:-

相关问题 更多 >