我正在读取数百甚至数千个文件中的某些偏移量。因为在特定时间我只需要来自某些偏移的某些数据,所以我必须保持文件句柄打开以供以后使用或者我可以将我需要的部分写入单独的文件中。
我认为保持所有这些文件句柄打开,而不是对新的临时文件的磁盘进行大量写入是两个邪恶中较小的一个。我只是担心打开这么多文件句柄的效率。
通常情况下,我会打开一个文件,寻找偏移量,读取一些数据,然后5秒后做同样的事情,但是在另一个偏移量,并在2分钟的时间范围内对数千个文件进行所有这些。
这会成为一个问题吗?
后续:真的,我要问哪个最好将这千个文件句柄保持打开状态,或者不断关闭它们并在我即刻需要它们时重新打开它们。
答案 0 :(得分:4)
某些系统可能会限制单个进程可以同时打开的文件描述符的数量。 1024是一个常见的默认值,所以如果你需要一次打开“数千”,你可能想要在可移植性方面犯错并设计你的应用程序以使用更小的 打开文件描述符池。
答案 1 :(得分:3)
我建议您查看Storage.py
中的BitTorrent
。它包括文件句柄池的实现。