python md5 funktions problem

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von homecrow, 22.09.2011.

  1. #1 homecrow, 22.09.2011
    homecrow

    homecrow Jungspund

    Dabei seit:
    09.06.2010
    Beiträge:
    11
    Zustimmungen:
    0
    Moin, ich hab ein komisches Problem und hoffe das mir hier Jemand sagen kann was genau da falsch läuft.
    Stelle gerade ein script um das bis jetzt nur aus einer ekligen schleife bestanden hat so das alles in funktionen ausgelagert wird.
    Allerdings klappt das was in der Schleife ohne Probleme, in der funktion nicht mehr.

    Code:
    #!/usr/bin/python2.7
    
    import os
    import sys
    import hashlib
    
    
    path = '/tmp'
    
    
    def md5hash (path):
    	filehash = open ( path, 'rb' )
    	hash = hashlib.md5()
    	while True:
    		data = filehash.read(8192)
    		if not data:
    			return (path, "Is No Data File")
    		hash.update( data )
    	hexhash = hash.hexdigest()
    	filehash.close()
    	return hexhash
    
    
    for oDirPaths, oDirNames, oFiles in os.walk( path, True, None ):
    	 for filename in os.listdir(oDirPaths):
    	 	if os.path.isfile( os.path.join ( oDirPaths, filename)):
    			dirname = os.path.basename( oDirPaths )
                            fullpath = os.path.join ( oDirPaths, filename )
                            filehash = md5hash ( fullpath )
                            print filehash
    
    Leider bekomme ich immer nur den return das es kein data file ist.
    Wenn ich mir allerdings vor dem if not data:
    ein print data mache dann bekomme ich binär als output also ist es doch data nur er meint das es kein data ist.
    Kann mir Jemand sagen was hier falsch läuft?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. amöbe

    amöbe Tripel-As

    Dabei seit:
    21.01.2007
    Beiträge:
    188
    Zustimmungen:
    0
    Anders als die meisten Pyhon-Funktionen gibt read() keine Exception am Ende. Wenn du am Ende der Datei bist, gibt filehash.read(8192) eine leeren String zurück, welcher vom if als False genommen wird. Und dann returnst du "Is No Data File", obwohl du ja eigentlich weist, dass die Datei existiert. Das leere Wort hat übrigens auch einen md5-hash. Du könntest also gleich so etwas schreiben:

    Code:
    def md5hash (path):
    	filehash = open ( path, 'rb' )
    	hash = hashlib.md5()
    	while True:
    		data = filehash.read(8192)
    		if not data:
    			filehash.close()
    			return hash.hexdigest()
    		hash.update( data )
    
     
Thema:

python md5 funktions problem

Die Seite wird geladen...

python md5 funktions problem - Ähnliche Themen

  1. [Python]Funktionsaufruf übergibt unbekannten Parameter

    [Python]Funktionsaufruf übergibt unbekannten Parameter: Hi, ich möchte eine Funktion der selben Klasse aufrufen und dabei Werte als Parameter übergeben, also self.<Funktionsname>(Parm1, ..., ParmN)...
  2. Python Softwareentwickler (Hintergrundentwicklung und Datenanalyse)

    Python Softwareentwickler (Hintergrundentwicklung und Datenanalyse): Stelle : Software-Entwickler Anzahl : 3 Standort : Manila(Die Philippinen) Dezhong Investment LTD. Unser internationales...
  3. Python-Interpreter PyPy 5.0 freigegeben

    Python-Interpreter PyPy 5.0 freigegeben: Der Python-Interpreter PyPy wurde in Version 5.0 veröffentlicht. Die aktuelle Version des Interpreters, der wesentlich schneller als der...
  4. Python-Interpreter PyPy 4.0 freigegeben

    Python-Interpreter PyPy 4.0 freigegeben: Der Python-Interpreter PyPy wurde in Version 4.0 veröffentlicht. Die aktuelle Version des Interpreters, der wesentlich schneller als der...
  5. Python 3.5 ist fertig

    Python 3.5 ist fertig: Über eineinhalb Jahre nach Python 3.4 haben die Entwickler jetzt die nächste Version veröffentlicht. In Python 3.5 gibt es zahlreiche Neuerungen...