Python: Schreiben in eine einzelne Datei mit Queue bei Verwendung des Multiprocessing Pools

7

Ich habe Hunderttausende Textdateien, die ich auf verschiedene Arten analysieren möchte. Ich möchte die Ausgabe in eine einzelne Datei ohne Synchronisierungsprobleme speichern. Ich habe Multiprocessing-Pool verwendet, um dies zu tun, um Zeit zu sparen, aber ich kann nicht herausfinden, wie Pool und Warteschlange zu kombinieren.

Der folgende Code speichert den Namen des Files sowie die maximale Anzahl aufeinanderfolgender "x" s in der Datei. Ich möchte jedoch, dass alle Prozesse Ergebnisse in derselben Datei speichern und nicht in anderen Dateien als in meinem Beispiel. Jede Hilfe hierzu wäre sehr willkommen.

%Vor%     
risraelsen 27.10.2014, 20:57
quelle

2 Antworten

21

Multiprocessing-Pools implementieren eine Warteschlange für Sie. Verwenden Sie einfach eine Pool-Methode, die den Worker-Rückgabewert an den Aufrufer zurückgibt. Imap funktioniert gut:

%Vor%     
tdelaney 27.10.2014, 23:15
quelle
3

Ich nahm die akzeptierte Antwort und vereinfachte sie für mein eigenes Verständnis davon, wie das funktioniert. Ich poste es hier für den Fall, dass es jemand anderem hilft.

%Vor%     
Raj 18.10.2017 02:03
quelle

Tags und Links