Datei mit einem Unicode-Dateinamen öffnen?

8

Ich kann anscheinend keine Datei mit einem Unicode-Dateinamen öffnen. Sagen wir es so:

%Vor%

Wenn ich versuche, nach einer Lösung zu suchen, bekomme ich immer Seiten darüber, wie man eine Unicode-Zeichenkette in eine Datei liest und schreibt, nicht wie man eine Datei mit file() oder open() mit einem Unicode-Namen öffnet / p>     

Tshepang 16.04.2012, 19:58
quelle

2 Antworten

27

Übergeben Sie einfach open() eine Unicode-Zeichenfolge für den Dateinamen:

In Python 2.x:

%Vor%

In Python 3.x sind alle Zeichenfolgen Unicode, also gibt es buchstäblich nichts.

Beachten Sie, dass der beste Weg, um eine Datei zu öffnen, immer die with ist. Anweisung in Verbindung mit open() .

Edit: In Bezug auf os.listdir() ist der Hinweis wieder anders, unter Python 2.x muss man vorsichtig sein:

  

os.listdir (), das Dateinamen zurückgibt, wirft ein Problem auf: Soll es die Unicode-Version von Dateinamen zurückgeben, oder sollte es 8-Bit-Zeichenfolgen zurückgeben, die die codierten Versionen enthalten? os.listdir () führt beides aus, abhängig davon, ob Sie den Verzeichnispfad als 8-Bit-Zeichenfolge oder als Unicode-Zeichenfolge angegeben haben. Wenn Sie eine Unicode-Zeichenfolge als Pfad übergeben, werden Dateinamen mit der Codierung des Dateisystems dekodiert und eine Liste von Unicode-Strings zurückgegeben, während die Übergabe eines 8-Bit-Pfads die 8-Bit-Versionen der Dateinamen zurückgibt.

Quelle

Kurz gesagt, wenn Sie Unicode verwenden möchten, setzen Sie Unicode in:

%Vor%

Beachten Sie, dass die Datei immer noch in beiden Richtungen geöffnet wird - sie wird in Python nicht gut dargestellt, da es eine 8-Bit-Zeichenfolge ist, aber sie funktioniert trotzdem.

%Vor%

Unter 3.x ist wie immer immer Unicode.

    
Gareth Latty 16.04.2012, 20:00
quelle
7

Sie können dies versuchen:

%Vor%     
Thanasis Petsas 16.04.2012 20:10
quelle

Tags und Links