Zum Beispiel können Sie eine Unicode-Zeichenfolge explizit während der Initialisierung angeben können ein u
vor dem String durch Hinzufügen wie unten dargestellt:Wie behandelt man die str-Variable als Unicode nach der Initialisierung für das OS-Modul in Python 2?
path1 = u'./테스트'
# printing type of path1 returns
<type 'unicode'>
Auf der anderen Seite, wenn Sie es als eine normale Zeichenfolge zu initialisieren sind
path2 = './테스트'
# printing type of path2 returns
<type 'str'>
Wenn ich die path
Variablen an die os.listdir()
Funktion zu übergeben wurde die Dateien in einem Verzeichnis zum Beispiel zu bekommen,
path1
wird gut funktionieren, während path2
einen Fehler wirft UnicodeDecodeError
Ich versuchte path2
decode
mit Umwandlung und es os.listdir()
path3 = path2.decode('unicode-escape')
#printing type of path3 returns
<type 'unicode'>
#but passing it to os.listdir() threw the following error
WindowsError: [Error 3]
Inspektion der path
Variablen vorbei ergab, dass Decodierung den Wert von path3
path1 = ./테스트
path2 = ./테스트
path3 = ./íì¤í¸
verursacht das System zu jammern, dass es keinen Ordner mit dem Namengibt 0
also was fehlt mir? Gibt es eine andere Möglichkeit, eine String-Variable in Unicode zu verwandeln?
Danke! das hat den Trick gemacht !!! – greyowl
Wenn das Python 2 ist, sollten Sie das wirklich als 'u './ 테테트' .decode ('utf8')' schreiben. Sie können ohne das 'u' entkommen, aber nur wenn Ihre Quelldatei auch als UTF-8 kodiert ist. – roeland
@roeland: Nein, Sie dekodieren nicht 'Unicode' mit einem Zeichensatz. –