Ich versuche, eine relativ große (ca. 100k Zeilen) CSV-Datei in Python zu verarbeiten. Dies ist, was mein Code wie folgt aussieht:Wie kann ich dieses Python-Skript beschleunigen, um eine CSV-Datei zu lesen und zu verarbeiten?
#!/usr/bin/env python
import sys
reload(sys)
sys.setdefaultencoding("utf8")
import csv
import os
csvFileName = sys.argv[1]
with open(csvFileName, 'r') as inputFile:
parsedFile = csv.DictReader(inputFile, delimiter=',')
totalCount = 0
for row in parsedFile:
target = row['new']
source = row['old']
systemLine = "some_curl_command {source}, {target}".format(source = source, target = target)
os.system(systemLine)
totalCount += 1
print "\nProcessed number: " + str(totalCount)
Ich bin nicht sicher, wie dieses Skript zu optimieren. Sollte ich etwas außer DictReader benutzen?
Ich habe Python verwenden 2.7, und aktualisieren können nicht auf Python 3.
Das Problem liegt nicht darin, wie Sie die CSV lesen, sondern eher, dass Sie für jede Zeile der Datei "Curl" shelling. Stattdessen: 1. Verwenden Sie nativen Python-Code zum Abrufen der URL und 2. Verwenden Sie Multithreading, um mehrere Anfragen gleichzeitig zu erstellen. – kindall
Kann ich noch etwas anderes machen? Ich bin neu bei Python, und ich möchte nicht mit Multithreading herumspielen. – alexgbelov
Nr. 99% der Laufzeit des Skripts ist Ihr Skript auf der Web-Anfrage, weil Sie warten auf jeden Abschluss vor dem nächsten zu starten. Um dies zu vermeiden, müssen Sie mehrere gleichzeitig ausführen. – kindall