Größe eines geöffneten Dateiobjekts
Ist es ein Weg, um die Größe von einem file-Objekt, das derzeit geöffnet ist?
Speziell, ich arbeite mit dem Modul tarfile erstellen tarfiles, aber ich will nicht, dass meine tarfile überschreiten einer bestimmten Größe. Soweit ich weiß, tarfile Objekte sind Datei-wie Objekte, so Stelle ich mir eine generische Lösung funktionieren würde.
InformationsquelleAutor der Frage strider1551 | 2008-11-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen ChrisJY die Idee, das Beispiel
InformationsquelleAutor der Antwort Vinko Vrsalovic
Gut, wenn das file-Objekt unterstützt die Methode sagen, die Sie tun können:
Sagen, Sie waren es gerade schreibt. Wenn Sie schreiben, in einer sequenziellen Art und Weise, dies die Größe der Datei.
Andernfalls können Sie die Datei-system-Funktionen, d.h.
os.fstat
wie vorgeschlagen, die von anderen.InformationsquelleAutor der Antwort PierreBdR
Wenn Sie die Datei-Deskriptor, können Sie
fstat
um herauszufinden, die Größe, falls vorhanden. Eine allgemeinere Lösung ist darin zu suchen am Ende der Datei, und Lesen Sie die entsprechende Stelle.InformationsquelleAutor der Antwort Chris Jester-Young
Andere Lösung ist mit StringIO ", wenn Sie tun, in-memory-Operationen".
Nun
body
verhält sich wie ein file-Objekt mit verschiedenen Attributen, wiebody.read()
.body.len
gibt die Größe der Datei.InformationsquelleAutor der Antwort vestronge
f = open('myfile', 'rb')
print(len(f.read()))
InformationsquelleAutor der Antwort Alex Prusyazhnyk