Die Idee ist, N
Dateien schreiben mit N
Prozesse.spawn mehrere Prozesse zum Schreiben verschiedener Dateien Python
Die Daten für die Datei geschrieben werden sollen, werden aus mehreren Dateien kommen, die auf einem Wörterbuch gespeichert werden, die eine Liste als Wert hat, und es sieht wie folgt aus:
dic = {'file1':['data11.txt', 'data12.txt', ..., 'data1M.txt'],
'file2':['data21.txt', 'data22.txt', ..., 'data2M.txt'],
...
'fileN':['dataN1.txt', 'dataN2.txt', ..., 'dataNM.txt']}
so file1
data11 + data12 + ... + data1M
etc ist .. .
So sieht mein Code wie folgt aus: wie diese
jobs = []
for d in dic:
outfile = str(d)+"_merged.txt"
with open(outfile, 'w') as out:
p = multiprocessing.Process(target = merger.merger, args=(dic[d], name, out))
jobs.append(p)
p.start()
out.close()
und die merger.py aussieht:
Ich sehe die Datei auf den Ordner geschrieben gehen soll, aber es ist leer. kein Header, nichts. Ich habe Abzüge hineingelegt, um zu sehen, ob alles in Ordnung ist, aber nichts funktioniert.
Hilfe!
Sie rufen 'out.close()' 'unmittelbar nach p.start()'. Ich bezweifle, dass die Zusammenführungsaufgabe Zeit hat, ausgeführt zu werden, bevor die Datei davon geschlossen wird. – Blorgbeard
@Blorgbeard guter Punkt, aber immer noch nichts ... – Pavlos
Dies ist auf einem Linux wie Betriebssystem, richtig? – tdelaney