2016-12-12 2 views
0

Ich möchte Dateinamen aus einem Verzeichnis lesen und ihre Namen ausdrucken. Dies ist mein Code:Fehler auf Windows, aber nicht auf Linux mit japanischen Zeichen

png_files = [] 
for root, dirs, files in os.walk('output'): 
    for file in files: 
     png_files.append(file) 
for name in png_files: 
    print(name) 

Das funktioniert aber nur unter Linux (nicht auf Windows) und ich weiß nicht, warum. Meine Dateien haben einige japanische Zeichen und ich weiß, dass das Problem darin liegt, aber ich weiß nicht, wie ich das beheben soll.

Ich erhalte diese Mitteilung:

'charmap' Codec kann nicht Zeichen in Position codieren 19-27: Zeichen zuordnet <undefined>

ich versucht habe encode('UTF-8') und dann habe ich erhalten:

b'forecast_traffic \ XE4 \ XB8'

Ich weiß, dass, wenn Sie b'' haben es bedeutet, dass es ein bytestring ist so i name.encode('UTF-8').decode() versucht, aber ich wieder die gleiche Fehlermeldung erhalten, und wenn ich mir die Störung nur kodieren versuchen erhalten:

‚str‘ Objekt hat kein Attribut 'decode'

Weiß jemand, wie man das behebt und wo mein Fehler ist?

+0

Die Windows-Konsole nicht mit Sonderzeichen umgehen kann. Ich habe das gleiche Problem zuvor mit spanischen Zeichen. –

+0

@ SantiPeñate-Vera Vielen Dank, ich verlor eine Stunde und dachte, was das Problem sein kann. Sie können es als Antwort posten und ich werde es akzeptieren. – kemis

+0

@ SantiPeñate-Vera Es wurde behoben. Überprüfe meine Antwort. Hoffnung Es wird auch mit Spanisch funktionieren. – Bodhi94

Antwort

Verwandte Themen