Es gibt zwei Möglichkeiten, es zu ändern:
1) (Linux-only) export LC_CTYPE=en_US.UTF8
vor Python starten:
$ LC_CTYPE=C python -c 'import sys; print(sys.getfilesystemencoding())'
ANSI_X3.4-1968
$ LC_CTYPE=C.UTF-8 python -c 'import sys; print(sys.getfilesystemencoding())'
UTF-8
Beachten Sie, dass LANG als Standardwert für LC_CTYPE dient, wenn es nicht eingestellt, während LC_ALL überschreibt sowohl LC_CTYPE und LANG)
2) monkeypatching:
import sys
sys.getfilesystemencoding = lambda: 'UTF-8'
Beide Methoden lassen Funktionen wie os.stat
akzeptieren Unicode (Python2.x) Zeichenfolgen. Andernfalls verursachen diese Funktionen eine Ausnahme, wenn sie Nicht-ASCII-Symbole im Dateinamen sehen.
Methode 1 funktioniert nicht oder ich – sureshvv
@sureshvv Was ist Ihr Betriebssystem? –
Ubuntu 16.04. Musste LANG = en_US.UTF8 zu/etc/environment hinzufügen und neustarten. – sureshvv