Seite 1 von 1

Fehler bei md5 aus File erstellen

Verfasst: Freitag 6. Juni 2008, 19:31
von Laines
Hallo,
ich will eine md5 summe aus einem file erstellen hier der Code:

Code: Alles auswählen

dbdatei = models.dbfile()
           dbdatei.filename = filename
           dbdatei.path = selecteddir
           dbdatei.fullpath = os.path.join(selecteddir, filename)
           dbdatei.md5 = hashlib.md5(file(dbdatei.fullpath).read()).hexdigest() 
           dbdatei.save()
Der Fehler lautet und betrifft die zeile5
TypeError at /
'FileDict' object is not callable
Request Method: POST
Request URL: http://127.0.0.1:8000/
Exception Type: TypeError
Exception Value: 'FileDict' object is not callable

Re: Fehler bei md5 aus File erstellen

Verfasst: Freitag 6. Juni 2008, 19:32
von Laines
Laines hat geschrieben:Hallo,
ich will eine md5 summe aus einem file erstellen hier der Code:

Code: Alles auswählen

dbdatei = models.dbfile()
                   dbdatei.filename = filename
                   dbdatei.path = selecteddir
                   dbdatei.fullpath = os.path.join(selecteddir, filename)
                   dbdatei.md5 = hashlib.md5(file(dbdatei.fullpath).read()).hexdigest() 
                   dbdatei.save()
Der Fehler lautet und betrifft die zeile5
TypeError at /
'FileDict' object is not callable
Request Method: POST
Request URL: http://127.0.0.1:8000/
Exception Type: TypeError
Exception Value: 'FileDict' object is not callable
P.s.:
dbdatei.fullpath enthält den absoluten pfad der Datei z.B.:
/home/user/datei.txt

Verfasst: Freitag 6. Juni 2008, 20:06
von Leonidas
Warum sieht das aus wie ein Kamm? Hint: Quellcode schwerer lesbar zu machen verringert deine Chancen auf eine Antwort, wenn du dir nicht einmal die Mühe machst den Code zu formattieren.

Verfasst: Freitag 6. Juni 2008, 20:21
von Laines
Danke für den Tipp!

Verfasst: Freitag 6. Juni 2008, 21:16
von Leonidas
Zerteils doch mal in Einzelschritten, dann wirds sicherlich klarer. Ich würde dir so oder so raten, die Datei im Binärmodus zu öffnen. Auf Unices macht das zwar eigentlich keinen Unterschied, aber es schadet auch nicht.

Verfasst: Montag 14. Juli 2008, 13:56
von Laines
Muss das ganze leider nochmal pushen, hab immer noch das Problem. Sobald ich etwas mit "file" machen will sagt er mir "'FileDict' object is not callable"...

Verfasst: Montag 14. Juli 2008, 13:58
von audax
dann zeig halt mal vollen Quellcode, den man bei sich ausführen kann und bei dem der Fehler auftritt.

Verfasst: Montag 14. Juli 2008, 15:03
von BlackJack
Ich würde mal sagen der Name `file` ist an ein Objekt vom Typ `FileDict` gebunden und nicht mehr an das Objekt aus den `__builtins__`. Ich würde sowieso `open()` empfehlen. Das "echte" `file` ist eher dazu gedacht, um Unterklassen davon ab zu leiten.

Verfasst: Montag 14. Juli 2008, 17:00
von Laines
Tja das war es schon...
statt file() einfach open() benutzt und es funktionierte....
Danke :D