Dateigröße auslesen und vergleichen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Mario

Donnerstag 22. Juli 2004, 10:06

Hallo Leute,
hat jemand eine Idee, wie ich mit Python die Größe einer Datei (in Byte) ermitteln kann. Ich will einfach versuchen zu prüfen, ob deine bestehende datei überschrieben wurde??
Gruß
Mario
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

Donnerstag 22. Juli 2004, 10:19

Hi das kannst du mit dem Modul os und der Funktion stat() machen.
Schau dir die Funktion mal genauer an da kannst du die Größe in byte wiedergebebn lassen.


Gruß
Psus82
Drei Dinge die Programmierer hassen:
1.)Sonnenlicht
2.)Frische Luft
3.)Das ätzende Geräusch zwitschernder Vögel
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Sonntag 25. Juli 2004, 12:00

Mario hat geschrieben:Hallo Leute,
hat jemand eine Idee, wie ich mit Python die Größe einer Datei (in Byte) ermitteln kann. Ich will einfach versuchen zu prüfen, ob deine bestehende datei überschrieben wurde??
Gruß
Mario
Hi. Dann würde ich aber nicht die Dateigröße vergleichen, sondern einfach das Datum der letzten Änderung, also os.stat("file").st_mtime . Schließlich kann auch die neue Datei exakt dieselbe Dateigröße haben...
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 28. Januar 2005, 09:38

Mario hat geschrieben:die Größe einer Datei (in Byte) ermitteln

Code: Alles auswählen

FileName = "/test/Beispiel.exe"

FileSize = os.path.getsize( FileName )

print "Größe in Bytes:", FileSize
powerslide
User
Beiträge: 51
Registriert: Freitag 10. Dezember 2004, 09:05
Wohnort: Erlangen
Kontaktdaten:

Freitag 28. Januar 2005, 10:37

wie wärs denn mit

Code: Alles auswählen

cmp(filename1, filename2)
dateien werden dann als gleich betrachtet wenn größe, typ und zeitstempel identisch ist
How many people can read hex if only you and dead people can read hex?

There are 10 types of people in the world: Those who understand binary, and those who don't...
Iopodx@Gast

Montag 7. Februar 2005, 13:47

oder umständlicher, hast aber ne Menge infos!

Code: Alles auswählen

import os
filename='C:\\windows\\system32\\ftp.exe'
pipe=os.popen("dir "+filename)
result=pipe.read()
pipe.close()
result=result.split('\n')
lastchange=result[5][0:17]
size=result[5][17:35]

print lastchange
print size
Edit (Leonidas): Code in Python Tags gesetzt.
BlackJack

Montag 7. Februar 2005, 23:49

Komisch ich bekommen da eine Fehlermeldung, dass 'dir' nicht gefunden wurde.

Also bitte, das 'os' Modul ist extra dazu da plattformübergreifend auf Dateien und andere Systemdienste zuzugreifen und ich glaube nicht, das die Ausgabe von 'dir' mehr Informationen liefert als 'os.stat'.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 8. Februar 2005, 00:41

BlackJack hat geschrieben:Komisch ich bekommen da eine Fehlermeldung, dass 'dir' nicht gefunden wurde.
Kein Wunder, BlackJack, denn dir ist normalerweise ein Builtin von command.com oder cmd.exe. So wirst du wohl auf den wenigsten Systemen, auf denen dir geht eine dir.exe oder dir.com finden. Das ist genauso wie der Help builtin. Deswegen: besser ls.exe benutzen, wenn es denn schon sein muss :)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 8. Februar 2005, 06:51

Leonidas hat geschrieben:Deswegen: besser ls.exe benutzen, wenn es denn schon sein muss :)
Das bringt dir auch nicht viel, wenn du es auf einem Windows Rechner laufen läßt :lol: und wie man sehen kann lieft das Beispiel unter Windows:

Code: Alles auswählen

filename='C:\\windows\\system32\\ftp.exe'
pipe=os.popen("dir "+filename)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 8. Februar 2005, 11:12

jens hat geschrieben:
Leonidas hat geschrieben:Deswegen: besser ls.exe benutzen, wenn es denn schon sein muss :)
Das bringt dir auch nicht viel, wenn du es auf einem Windows Rechner laufen läßt :lol: und wie man sehen kann lieft das Beispiel unter Windows
Ich habe ja auch von ls.exe gesprochen, nicht von ls. Native Windows Ports sind doch was schönes.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten