Ich bemerkte, dass, wenn ich über eine Datei, die ich geöffnet habe, iterieren, es viel schneller ist, darüber zu iterieren, ohne es "zu lesen".Python: Wann sollte ich jemals file.read() oder file.readlines() verwenden?
dh
l = open('file','r')
for line in l:
pass (or code)
ist viel schneller als
l = open('file','r')
for line in l.read()/l.readlines():
pass (or code)
Die zweite Schleife um dauern wird 1.5x so viel Zeit (ich habe timeit über die exakt gleiche Datei, und die Ergebnisse waren 0,442 vs 0.660), und würde das gleiche Ergebnis geben.
Also - wann sollte ich jemals die .read() oder .readlines() verwenden?
Da ich immer über die Datei iterieren muss, die ich lese, und nach dem Lernen der harten Weg, wie schmerzhaft verlangsamen die .read() kann auf große Daten - ich kann mir nicht vorstellen, jemals wieder verwenden.
Bitte klären. ist die Zeitmessung für "read" oder für "readlines"?Ich würde erwarten, dass die "read" -Schleife länger dauert, weil sie eine einzelne Zeichenfolge zurückgibt, so dass die Iteration Zeichen für Zeichen durchlaufen würde. Wenn Ihre Datei durchschnittlich 100 Zeichen pro Zeile enthält, wird der Code in der Schleife "for line in l.read()" hundertmal so oft ausgeführt wie der Code in der Schleife "for line in l:". – Kevin
ist es auch für readlines(). Überraschenderweise gibt es fast keinen Zeitunterschied zwischen read() oder readlines() ... –