Problem mit glob und Sonderzeichen in Dateinamen (py 3.3.0)
Verfasst: Sonntag 18. November 2012, 18:39
Hallo,
ich schreibe mit Python Skripte um meine Musiksammlung zu bearbeiten. (Ich möchte z.B. alle flac-Dateien in einem Ordner als Parameter an ein Kommandozeilentool übergeben um Replay Gain Tags zu erstellen.)
Dabei ist ein Problem bei Dateinamen aufgetreten, die bestimmte Sonderzeichen enthalten. Das Problem lässt sich sehr einfach mit dem folgenden Code nachvollziehen:
import glob
files = glob.glob('*.flac')
print(files)
Wenn sich jetzt z.B. eine Datei mit dem Namen "ş.flac" im Verzeichnis befindet, dann erhalte ich den folgenden Fehler wenn ich das Skript ausführe:
Traceback (most recent call last):
File "test.py", line 4, in <module>
print(datfiles)
File "C:\Python33\lib\encodings\cp850.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u015f' in position 2: character maps to <undefined>
Leider kann ich aufgrund des Fehlers mein Skript nicht bei allen Musikalben anwenden
Ich hab mich mittlerweile das halbe Wochenende mit Zeichencodierungen beschäftigt und kann die ganze UTF-8 Story, aber leider hat das alles nichts geholfen. Kann mir bitte jemand von euch einen Tipp geben?
Ich verwende übrigens Python 3.3.0 64bit unter Windows 7.
Vielen Dank!
ich schreibe mit Python Skripte um meine Musiksammlung zu bearbeiten. (Ich möchte z.B. alle flac-Dateien in einem Ordner als Parameter an ein Kommandozeilentool übergeben um Replay Gain Tags zu erstellen.)
Dabei ist ein Problem bei Dateinamen aufgetreten, die bestimmte Sonderzeichen enthalten. Das Problem lässt sich sehr einfach mit dem folgenden Code nachvollziehen:
import glob
files = glob.glob('*.flac')
print(files)
Wenn sich jetzt z.B. eine Datei mit dem Namen "ş.flac" im Verzeichnis befindet, dann erhalte ich den folgenden Fehler wenn ich das Skript ausführe:
Traceback (most recent call last):
File "test.py", line 4, in <module>
print(datfiles)
File "C:\Python33\lib\encodings\cp850.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u015f' in position 2: character maps to <undefined>
Leider kann ich aufgrund des Fehlers mein Skript nicht bei allen Musikalben anwenden
Ich verwende übrigens Python 3.3.0 64bit unter Windows 7.
Vielen Dank!