Ich schreib mir gerade ein kleines Tool, welches md5 Summen von Dateien berechnen soll und diese auch in *.md5-Datei abspeichern soll.
Das ist ja kein Problem. Es gibt auch unter python/Tools/Scripts/md5sum.py ein fertige Variante.
Weiß jemand ob es bei den .md5-Dateien ein bestimmtes Format gibt??? Ein quasi Standart?
EDIT: Ich möchte den ConfigParser dazu verwenden, damit auch ein paar zusatzinfos platz haben...
md5sum
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Also ich nutzte den ConfigParser dazu, die Datei sieht dann so aus:
Die Angabe der Dateigröße (size) ist hilfreich, weil wenn die schon nicht stimmt, dann kann auch die MD5 summe nicht stimmen und muß somit für einen vergleich nicht neu berechnet werden
Somit ist meine md5-Datei leider nicht allgemein Kompatibel. Ich könnte mir allerdings auch überlegen das ungefähr so zu machen:
Somit könnte es kompatibel zu anderen Programmen sein?!?!
Gibt es Kommentare in md5-Dateien???
Code: Alles auswählen
[md5sum]
size = 141
md5sum = 1f2d9bbe5e3da433344da41c3c1fd607
mtime = 17 Nov 2005 10:06:45 +0000
filename = 01 - Leave In Silence.mp3
Somit ist meine md5-Datei leider nicht allgemein Kompatibel. Ich könnte mir allerdings auch überlegen das ungefähr so zu machen:
Code: Alles auswählen
1f2d9bbe5e3da433344da41c3c1fd607 01 - Leave In Silence.mp3
#[md5sum]
#size = 141
#md5sum = 1f2d9bbe5e3da433344da41c3c1fd607
#mtime = 17 Nov 2005 10:06:45 +0000
#filename = 01 - Leave In Silence.mp3
Gibt es Kommentare in md5-Dateien???
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
OUCH. Das heißt Standardjens hat geschrieben:Weiß jemand ob es bei den .md5-Dateien ein bestimmtes Format gibt??? Ein quasi Standart?
Ja. Den Standard gibt es, der schaut so aus:
Code: Alles auswählen
^(.*?)\s+(.*?)$
group2 = dateiname
und der ist fix
Und nein, das mit der Dateizeit ist eine schlechte Idee, weil ich kann eine Datei touchen und dann ist die Zeit anders, aber der Inhalt gleich.
TUFKAB – the user formerly known as blackbird
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Die Dateizeiten werden natürlich nicht herrangezogen um eine Aussage zu treffen, ob die Datei vom Inhalt her gleich oder unterschiedlich ist! Es wird nur ein Hinweis ausgegeben, wenn die Zeiten unterschiedlich sind.blackbird hat geschrieben:Und nein, das mit der Dateizeit ist eine schlechte Idee, weil ich kann eine Datei touchen und dann ist die Zeit anders, aber der Inhalt gleich.
Nur die Dateigröße muß exakt stimmen... Bei großen Dateien braucht man dann nicht erst die md5 Summe zu bilden, wenn die Dateigrößen unterschiedlich sind
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
So, das fertige Tool gibt's nun hier:
http://www.jensdiemer.de/Programmieren/ ... ets/md5sum
Noch eine Frage...
Wie kann man Farbige Ausgaben machen??? Mit curses???
Wenn z.B. die MD5 summe falsch ist, sollte die Zeile rot Dargestellt werden, damit sie besser auffällt...
OK, curses gibt's nicht unter Windoof... Ein schneller Hack:
Gibt's da eine Entsprechung unter Linux?
http://www.jensdiemer.de/Programmieren/ ... ets/md5sum
Noch eine Frage...
Wie kann man Farbige Ausgaben machen??? Mit curses???
Wenn z.B. die MD5 summe falsch ist, sollte die Zeile rot Dargestellt werden, damit sie besser auffällt...
OK, curses gibt's nicht unter Windoof... Ein schneller Hack:
Code: Alles auswählen
def set_color(self, color):
"""
ändert die Komplette Hintergrundfarbe
"""
if sys.platform == "win32":
if color=="red":
os.system("color 4f")
elif color=="blue":
os.system("color 1f")
man console_codesjens hat geschrieben:Gibt's da eine Entsprechung unter Linux?
In Grunde gehen alle ANSI-Steuersequenzen, wie damals unter DOS:
Code: Alles auswählen
print "\033[1;31mfett rot\033[5;35;46mUnterstrichenes Lila auf Türkies :-P\033[m back to normal"
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wenn ich etwas runterlade wird das Datum der Datei auf das aktuelle Datum gesetzt, nicht das datum was die Datei auf dem Server hat. Von dem hier macht das auch nicht so viel Sinn.jens hat geschrieben:Die Dateizeiten werden natürlich nicht herrangezogen um eine Aussage zu treffen, ob die Datei vom Inhalt her gleich oder unterschiedlich ist! Es wird nur ein Hinweis ausgegeben, wenn die Zeiten unterschiedlich sind.
curses. Und WConIO unter Windows.jens hat geschrieben:Wie kann man Farbige Ausgaben machen??? Mit curses???
Wenn z.B. die MD5 summe falsch ist, sollte die Zeile rot Dargestellt werden, damit sie besser auffällt...
OK, curses gibt's nicht unter Windoof... Ein schneller Hack:
Gibt's da eine Entsprechung unter Linux?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
@Joghurt: Danke für den Hinweis. Leider klappen die Esc.Sequenzen bei mir unter Windows nicht. Ich denke dazu muß man evtl. ansi.sys laden?!?!
Da ich das tool erstmal nur unter Windows verwende, bleibe ich erstmal bei dem was ich bisher habe...
@Leonidas: Allerdings ist WConIO ein zusätzlich zu installierendes Modul, oder??? Für mein kleines Mini-Tool ist das aber total übertrieben...
Generell wäre evtl. eine TK-Oberfläche nett... Aber da ich in TK noch nicht's gemacht hab, ist das viel zu Aufwändig für mich
Btw. interessant wäre evtl. das "konvertieren" bestehender MD5-Dateien nach dem "offiziellen" Skrickmuster zu meiner Variante Aber da hab ich z.Z. keine richtige verwendung für, deswegen lass ich das...
Vielleicht hat ja einer von euch interesse daran und bastelt ein wenig damit rum...
Da ich das tool erstmal nur unter Windows verwende, bleibe ich erstmal bei dem was ich bisher habe...
@Leonidas: Allerdings ist WConIO ein zusätzlich zu installierendes Modul, oder??? Für mein kleines Mini-Tool ist das aber total übertrieben...
Generell wäre evtl. eine TK-Oberfläche nett... Aber da ich in TK noch nicht's gemacht hab, ist das viel zu Aufwändig für mich
Btw. interessant wäre evtl. das "konvertieren" bestehender MD5-Dateien nach dem "offiziellen" Skrickmuster zu meiner Variante Aber da hab ich z.Z. keine richtige verwendung für, deswegen lass ich das...
Vielleicht hat ja einer von euch interesse daran und bastelt ein wenig damit rum...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Funktioniert unter "richtigen" Windows-Versionen (NT-Serien ohne DOS Ballast) nicht mehr.jens hat geschrieben:@Joghurt: Danke für den Hinweis. Leider klappen die Esc.Sequenzen bei mir unter Windows nicht. Ich denke dazu muß man evtl. ansi.sys laden?!?!
Ja, allerdings ist es recht klein, soweit ich weiß nur ein pyd-Modul.jens hat geschrieben:@Leonidas: Allerdings ist WConIO ein zusätzlich zu installierendes Modul, oder??? Für mein kleines Mini-Tool ist das aber total übertrieben...
Tk? Nicht nett! Komische Integration in Python (über mehrere Ecken, so zum Beispiel den Tcl-Interpreter), wenige Features (viele Widgets musst du selbstmachen oder irgendwo fertige suchen) und das Look and Feel passt weder zu Linux noch Windows (davon abgesehen ist es sowieso mies). Und dass alles, wenn es doch mindestens zwei gute Alternativen gibt: PyGTK und wxPython (es gäbe noch PyQt, aber das ist nicht auf aktuellem Stand von Qt4 und außerdem bekommst du da den GPL-Maulkorb aufgesetzt, sonst ist es auch gut).jens hat geschrieben:Generell wäre evtl. eine TK-Oberfläche nett... Aber da ich in TK noch nicht's gemacht hab, ist das viel zu Aufwändig für mich
Ich denke, ich kann dir ein Grundskelett von einer PyGTK und eine wxPy GUI-Basteln, wenn du magst.jens hat geschrieben:Vielleicht hat ja einer von euch interesse daran und bastelt ein wenig damit rum...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Naja, ich dachte an TK, weil es halt bei Python dabei ist und nicht weil es so toll ist
Bei einem kleinen mini tool, wie das, möchte ich keinem zumuten irgendwas zusätzliches zu installieren (mir selber auch nicht )
Bei einem kleinen mini tool, wie das, möchte ich keinem zumuten irgendwas zusätzliches zu installieren (mir selber auch nicht )
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ist es nicht. So habe ich bei mir Tcl/Tk komplett vom Rechner verbannt, weil es damit lauter Scherereien gab. Viele Linux-Distributionen haben auch noch ein extra python-tk Paket wo dann die ganzen Tk-Sachen drin sind.jens hat geschrieben:Naja, ich dachte an TK, weil es halt bei Python dabei ist und nicht weil es so toll ist
Warum es dann in Python schreiben? Mit C oder Ocaml geht das doch genauso (da fällt mir ein, ich bin immer noch nicht dazu gekommen Ocaml zu lernen, zu viele interessante Python Sachen in letzter Zeit gefunden).jens hat geschrieben:Bei einem kleinen mini tool, wie das, möchte ich keinem zumuten irgendwas zusätzliches zu installieren (mir selber auch nicht )
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hab ich auch nie behauptet. Ich dachte, du wolltest nur wissen, wie das unter Linux geht und dann je nach Betriebssystem verschiedene "Einfärberoutinen" aufrufen.jens hat geschrieben:@Joghurt: Danke für den Hinweis. Leider klappen die Esc.Sequenzen bei mir unter Windows nicht.
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Also ich finde ja das ganze ganz nett, aber ich sehe nur Nachteile zu einer originalen Implementation.
1.) die Zeiten sind sinnlose Werte, ändern sich leicht und haben keinen relevanten wert
2.) Dateigrößen ändern sich manchmal nicht und trotzdem ist die Datei verändert worden.
1.) die Zeiten sind sinnlose Werte, ändern sich leicht und haben keinen relevanten wert
2.) Dateigrößen ändern sich manchmal nicht und trotzdem ist die Datei verändert worden.
TUFKAB – the user formerly known as blackbird
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Zu 1: Also zu den Zeiten hab ich ja schon erkärt, das es nur einen Hinweis ausgibt! Insbesondere ist es für mich interessant, ob die MD5-Datei vom Datum her mit der Original noch zusammen passt. Allerdings hätte ich dafür lieber einen lesbaren Wert, aber das ist ja nicht so einfach, s.: http://www.python-forum.de/viewtopic.php?t=4436blackbird hat geschrieben:1.) die Zeiten sind sinnlose Werte, ändern sich leicht und haben keinen relevanten wert
2.) Dateigrößen ändern sich manchmal nicht und trotzdem ist die Datei verändert worden.
Zu 2: Da hast du dir das Skript aber nicht genau angeschaut. Sind die Dateigrößen gleich, wird die md5 neu berechnet und verglichen. Ist die Dateigröße aber schon unterschiedlich, loht sich die berechnung der MD5 garnicht. (Da ich das ganze ehr für Dateien im GB bereich benutzte, kann das manchmal schon sehr abkürzen)