Wie kann ich die Dateisystem-Codierung über Python ändern?

>>> import sys >>> sys.getfilesystemencoding() 'UTF-8' 

Wie kann ich das ändern? Ich weiß, wie man die Standard-System-Codierung zu ändern.

 >>> reload(sys) <module 'sys' (built-in)> >>> sys.setdefaultencoding('ascii') 

Aber es gibt keine sys.setfilesystemencoding.

  • Finde einen Pfad in Windows relativ zum anderen
  • Wie überprüfe ich, ob eine Datei mit Python existiert?
  • Filterverzeichnis in Python
  • Führen Sie eine C # -Anwendung aus dem Python-Skript aus
  • Erkennung neuer oder geänderter Dateien mit Python
  • Dateisystemleistungsprüfung
  • 2 Solutions collect form web for “Wie kann ich die Dateisystem-Codierung über Python ändern?”

    Die Dateisystemcodierung ist in vielen Fällen eine inhärente Eigenschaft des Betriebssystems. Es kann nicht geändert werden – wenn Sie aus irgendeinem Grund Dateien mit Namen erstellen müssen, die anders als die Dateisystemcodierung codiert sind, verwenden Sie keine Unicode-Zeichenfolgen für Dateinamen. (Oder wenn Sie Python 3 verwenden, verwenden Sie ein Bytes-Objekt anstelle eines Strings.)

    Einzelheiten finden Sie in der Dokumentation. Beachten Sie insbesondere, dass auf Windows-Systemen das Dateisystem nativ Unicode ist, so dass keine Konvertierung tatsächlich stattfindet und folglich ist es unmöglich, eine alternative Dateisystemcodierung zu verwenden.

    Es gibt zwei Möglichkeiten, es zu ändern:

    1) (linux-only) export LC_CTYPE=en_US.UTF8 vor dem Start der Python:

     $ 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 gesetzt ist, während LC_ALL sowohl LC_CTYPE als auch LANG überschreibt)

    2) monkeypatching:

     import sys sys.getfilesystemencoding = lambda: 'UTF-8' 

    Beide Methoden lassen Funktionen wie os.stat akzeptieren Unicode (python2.x) Strings. Andernfalls heben diese Funktionen eine Ausnahme an, wenn sie nicht-ascii-Symbole im Dateinamen sehen.

    Python ist die beste Programmiersprache der Welt.