Problem mit Shelve-Modul
Verfasst: Samstag 30. April 2016, 14:35
Hallo Leute,
ich habe ein kleines Programm geschrieben das mir für jede Datei im TESTORDNER
die dazugehörige MD5-Prüfsumme ausgibt und in eine Shelve-Datei("dict_book") abspeichert.
Die vier Beispieldateien lauten:
Mäuse.jpg
Pöppel.jpg
Suppengrün.jpg
ä___ö___ü___ß.jpg
Gebe ich den Inhalt der Shelve-Datei mit print wieder aus erhalte ich folgende
Python-Shell-Ausgabe:
{'Suppengru\xcc\x88n.jpg' : '72d53a30d3b16498e7bb9086777d8fc4', '
Po\xcc\x88ppel.jpg' : '7d600a30175c805514efd7b93a92f159',
'Ma\xcc\x88use.jpg' : 'b53157cd3fd5cacba3d41191539018e7',
'a\xcc\x88___o\xcc\x88___u\xcc\x88___\xc3\x9f.jpg' : 'f46b41bfa2875b32b92c529aa9f76166', '
.DS_Store' : '95dc61a5f1098e1243d6a1752c087966'}
-------------------------------------------------------------------------------------------------------------------------------------------
Wenn ich nun die Prüfsumme für die Datei Pöppel.jpg abfrage mit :
woerterbuch = shelve.open("dict_book")
print woerterbuch['Pöppel.jpg']
woerterbuch.close()
Erscheint die Fehlermeldung:
KeyError: 'P\xc3\xb6ppel.jpg'
Ich bräuchte ein Modul/eine Funktion mit der ich den String
'Pöppel.jpg' nach 'Po\xcc\x88ppel.jpg' konvertieren kann.
Dann würde die Abfrage endlich nach dieser Art klappen:
woerterbuch = shelve.open("dict_book")
print woerterbuch[konvertieren('Pöppel.jpg')]
woerterbuch.close()
Ich habe schon encode, decode, unicode, unicodedata , codecs etc. ausprobiert
aber ich bekomme es einfach nicht hin aus 'Pöppel.jpg' den String 'Po\xcc\x88ppel.jpg' zu machen.
ich habe ein kleines Programm geschrieben das mir für jede Datei im TESTORDNER
die dazugehörige MD5-Prüfsumme ausgibt und in eine Shelve-Datei("dict_book") abspeichert.
Die vier Beispieldateien lauten:
Mäuse.jpg
Pöppel.jpg
Suppengrün.jpg
ä___ö___ü___ß.jpg
Gebe ich den Inhalt der Shelve-Datei mit print wieder aus erhalte ich folgende
Python-Shell-Ausgabe:
{'Suppengru\xcc\x88n.jpg' : '72d53a30d3b16498e7bb9086777d8fc4', '
Po\xcc\x88ppel.jpg' : '7d600a30175c805514efd7b93a92f159',
'Ma\xcc\x88use.jpg' : 'b53157cd3fd5cacba3d41191539018e7',
'a\xcc\x88___o\xcc\x88___u\xcc\x88___\xc3\x9f.jpg' : 'f46b41bfa2875b32b92c529aa9f76166', '
.DS_Store' : '95dc61a5f1098e1243d6a1752c087966'}
-------------------------------------------------------------------------------------------------------------------------------------------
Wenn ich nun die Prüfsumme für die Datei Pöppel.jpg abfrage mit :
woerterbuch = shelve.open("dict_book")
print woerterbuch['Pöppel.jpg']
woerterbuch.close()
Erscheint die Fehlermeldung:
KeyError: 'P\xc3\xb6ppel.jpg'
Ich bräuchte ein Modul/eine Funktion mit der ich den String
'Pöppel.jpg' nach 'Po\xcc\x88ppel.jpg' konvertieren kann.
Dann würde die Abfrage endlich nach dieser Art klappen:
woerterbuch = shelve.open("dict_book")
print woerterbuch[konvertieren('Pöppel.jpg')]
woerterbuch.close()
Ich habe schon encode, decode, unicode, unicodedata , codecs etc. ausprobiert
aber ich bekomme es einfach nicht hin aus 'Pöppel.jpg' den String 'Po\xcc\x88ppel.jpg' zu machen.