Ich habe eine riesige Datei, die ich in etwa 450 Dateien schreibe. Ich bekomme einen Fehler als too many files open
. Ich suchte im Internet und fand eine Lösung, aber es hilft nicht.IOError: [Errno 24] Zu viele offene Dateien:
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'
>>>
Ich habe auch ulimit
von der Kommandozeile wie folgt:
$ 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
$
ich immer noch die gleichen Fehler. PS: Ich habe auch mein System neu gestartet und das Programm ausgeführt, aber ohne Erfolg.
Das ist ein crapload von Dateien ist. Müssen Sie wirklich alle zur selben Zeit geöffnet haben? – user2357112
Ich schlage vor, dass Sie eine Art von Warteschlangensystem entwickeln, so dass all diese Dateizugriffe nicht offen bleiben, was sehr ineffizient ist. – enginefree
Da die Eingabedatei sehr groß ist, möchte ich sie nur einmal lesen. Auch wenn das Öffnen mehrerer Dateien von Python unterstützt wird, warum sollte man es nicht benutzen. Es hat mein Leben viel einfacher gemacht, solange die Anzahl der geöffneten Dateien weniger als 256 betrug. – learner