Ich versuche, eine Textdatei mit 3.000.000 Zeilen zu lesen folgenden Code:Lesen große Textdateien in Python wird langsamer über Iterationen
f = open("somefile.txt", "r")
i = 0
st = time.time()
mydata = []
for line in f:
mydata.append(do_something(line))
i += 1
if i%10000 == 0:
print "%d done in %d time..." % (time.time() - st)
st = time.time()
Nach der Ausgabe auf der Konsole gedruckt ist:
10000 done in 6 time...
20000 done in 9 time...
30000 done in 11 time...
40000 done in 14 time...
50000 done in 15 time...
60000 done in 17 time...
70000 done in 19 time...
80000 done in 21 time...
90000 done in 23 time...
100000 done in 24 time...
110000 done in 26 time...
120000 done in 28 time...
130000 done in 30 time...
140000 done in 32 time...
150000 done in 33 time...
160000 done in 36 time...
170000 done in 39 time...
180000 done in 41 time...
190000 done in 45 time...
200000 done in 48 time...
210000 done in 48 time...
220000 done in 53 time...
230000 done in 56 time...
......and so on.....
Ich bin nicht sicher, warum die Zeit für das Lesen der gleichen Anzahl von Zeilen (10000) über Iterationen zunimmt. Gibt es eine Möglichkeit, dies zu vermeiden oder große Dateien besser zu lesen?
Ist es besser ohne die Zeile mydata.append? – Francesco
Sie wären überrascht, wie viel langsamer eine Anwendung mit Druckanweisungen ausgeführt wird. Entfernen Sie Ihre Druckanweisungen und prüfen Sie, ob sie die Leistung verbessern. – idjaw
@Francesco, ich muss die verarbeiteten Informationen für die spätere Verwendung speichern. Also kann ich es nicht vermeiden. – Chandrahas