我有一個巨大的文件,我寫入大約450個文件。我得到的錯誤爲too many files open
。我搜索了網絡,發現了一些解決方案,但沒有幫助。IOError:[Errno 24]太多打開的文件:
import resource
resource.setrlimit(resource.RLIMIT_NOFILE, (1000,-1))
>>> len(pureResponseNames) #Filenames
434
>>> resource.getrlimit(resource.RLIMIT_NOFILE)
(1000, 9223372036854775807)
>>> output_files = [open(os.path.join(outpathDirTest, fname) + ".txt", "w") for fname in pureResponseNames]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 24] Too many open files: 'icd9_737.txt'
>>>
我也改變ulimit
命令行如下:
$ ulimit -n 1200
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1200
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 709
virtual memory (kbytes, -v) unlimited
$
我仍然得到同樣的錯誤。 PS:我也重新啓動了我的系統並運行該程序,但沒有成功。
這是文件的crapload。你真的需要同時打開它們嗎? – user2357112
我強烈建議你開發某種隊列系統,以便所有這些文件句柄都不會打開,這是非常低效的。 – enginefree
由於輸入文件很大,我只想閱讀一次。另外,如果python支持打開多個文件,那麼爲什麼不使用它。只要打開文件的數量小於256,它使我的生活變得更輕鬆。 – learner