Das Computerbetriebssystem hält Metadata für alle Dateien. Unter anderem, das Betriebsystem hält eine Rekorde der Länge, in Bytes, einer jeden Datei.
Code: Alles auswählen
file = '/home/peterr/temp/datasets.json'
meta_data = os.stat(file) # Dateigröße = st_size=23430
meta_data sieht so aus:
os.stat_result(st_mode=33204, st_ino=2360998, st_dev=66311, st_nlink=1, st_uid=1000, st_gid=1000, st_size=23430, st_atime=1785194899, st_mtime=1755909298, st_ctime=1755909298)
Unter der Haube, unter der Schlangenhaut, Python ist auf C gebaut. C hat eine Funktion read()
readme
Einfach ausgedrückt, read() liest eine Anzahl bytes ein, und incrementiert offset, bis offset >= Filelänge, dann gibt read() 0 (Null, Zero) zurück, und die Leseoperation ist beendet.
Maximal, auf Linuxsystemen kann read() (2,147,479,552) bytes am Stück liefern.
Da eine Datei ohne Ende (st_size=∞,) die ganze Festplatte und mehr füllen wird, gehe ich davon aus dass deine Datei "endlich" ist. Du machst da irgendwas krummes in deiner Schleife! Wahrscheinlich eine while-Schleife ohne Ende.
Einfach dies eingeben:
Dann weißt du wie groß die Datei ist!
Alles hat ein Ende, nur die Wurst hat zwei!