मेरे पास एक बड़ी फ़ाइल है जिसे मैं लगभग 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
$
मैं अब भी वही त्रुटि हो रही है। पीएस: मैंने भी अपनी प्रणाली को पुनरारंभ किया और कार्यक्रम चलाया लेकिन बिना किसी सफलता के।
फ़ाइलों की एक crapload है के बजाय कोशिश करनी चाहिए। क्या आपको वास्तव में एक ही समय में उन्हें सभी खुले रखने की ज़रूरत है? – user2357112
मैं अत्यधिक सुझाव देता हूं कि आप कुछ प्रकार की कतार प्रणाली विकसित करें ताकि सभी फाइल हैंडल खुले नहीं रहें, जो अत्यधिक अक्षम है। – enginefree
चूंकि इनपुट फ़ाइल बहुत बड़ी है, इसलिए मैं इसे केवल एक बार पढ़ना चाहता हूं। इसके अलावा यदि एकाधिक फाइलें खोलना पाइथन द्वारा समर्थित है तो इसका उपयोग क्यों न करें। इसने मेरे जीवन को तब तक आसान बना दिया जब तक खुली फाइलों की संख्या 256 से कम थी। – learner