Ich habe eine Klasse erstellt, die eine Datei durchläuft und nachdem sie überprüft hat, ob eine Zeile gültig ist, schreibt sie diese Zeile in eine andere Datei. Jede Zeile, die es überprüft, ist ein langwieriger Prozess, der es sehr langsam macht. Ich muss Threading/Multiprocessing in der Funktion process_file implementieren; Ich weiß nicht, welche Bibliothek am besten geeignet ist, um diese Funktion zu beschleunigen oder zu implementieren.Python: Wie gehe ich mehrere Zeilen gleichzeitig in einer Datei durch?
class FileProcessor:
def process_file(self):
with open('file.txt', 'r') as f:
with open('outfile.txt', 'w') as output:
for line in f:
# There's some string manipulation code here...
validate = FileProcessor.do_stuff(self, line)
# If true write line to output.txt
def do_stuff(self, line)
# Does stuff...
pass
Zusätzliche Informationen: Der Code einer Proxy-Liste geht durch Prüfen, ob er online ist. Dies ist ein langwieriger und zeitraubender Prozess.
Vielen Dank für einen Einblick oder Hilfe!
Sie könnten [mmap] (https://docs.python.org/2/library/mmap.html) verwenden, um die Datei effizienter zu lesen, alle Ihre Validierung durchzuführen und dann Ihre Schreibvorgänge in die Ausgabedatei auszuführen. Hast du das probiert? –
Ist der Titel der Frage irreführend? Ich denke, dass Sie nach Möglichkeiten suchen, die Dateiverarbeitung parallel zu machen, weil IO in Ihrem Fall schneller als die Berechnung ist (haben Sie das bestätigt?). – Jasper
Tut mir leid, ich glaube, ich habe mich nicht gut genug erklärt. Mein Problem ist, dass der Code eine Zeile Code betrachtet, einige Dinge mit dieser Zeile tut und die Zeile in eine Funktion setzt, die true oder false zurückgibt und dann mit der nächsten Zeile wiederholt, usw. Ich versuche es zu bekommen, so dass es mehrere Zeilen gleichzeitig durchläuft. – Taylor