Python-line Lesen Größe in bytes
Ich arbeite in linux.
Ich würde gerne zeigen den Prozentsatz der Datei analysiert. Das ist, warum nach ein wenig Lesen habe ich beschlossen, dass die Genaueste Art und Weise zu tun wäre, bekommen die Gesamtgröße (in Byte) der Datei, die ich bin Parsen dann berechnen Sie die Größe (in bytes) der einzelnen Zeile nach dem Lesen.
Dies ist mein dummy vereinfachte code.
if __name__ == '__main__':
read_bytes = 0
total_file_size = os.path.getsize(myfile)
with open(myfile, 'r') as input_file:
for line in input_file:
read_bytes += sys.getsizeof(line)
print "do my stuff"
print total_file_size
print read_bytes
Ausgabe:
193794194
203979278
Offensichtlich gibt es etwas zu zählen in der Linie, die Erhöhung der Gesamtgröße.
Ich habe versucht mit:
read_bytes += sys.getsizeof(line) - sys.getsizeof('\n')
Und die Ausgabe ist:
193794194
193309190
Ich muss etwas fehlen.
InformationsquelleAutor gmarco | 2013-08-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
len
stattsys.getsizeof()
:sys.getsizeof()
Gegenzug verwendet byte durch Dolmetscher zu halten, dass der Objekt.Zusätzlich zu, dass, wenn Sie das Programm ausführen, in dem Fenster verwenden, sollten Sie den binary-Modus.
HINWEIS
Mit Datei.sagen, brauchen Sie nicht zu berechnen der aktuellen position.
Mit
file.tell()
Sie brauchen nicht zu berechnen, Lesen, rechnen.InformationsquelleAutor falsetru