PEP0263 gibt eine Syntax an, mit der die Codierung einer Python-Quelldatei in der Quelldatei selbst deklariert wird .
Ist es möglich, die Codierung über die Befehlszeile anzugeben?
Oder gibt es einen Grund, warum dies nicht wünschenswert ist?
Ich denke an etwas wie:
%Vor%oder sogar:
%Vor% Dies ist ein Hack und ist nicht das, was Sie suchen, und es funktioniert nicht auf Systemen, die nicht sed
haben, aber Sie können die Codierungszeile jedem Python-Skript voranstellen, indem Sie% verwenden Code%.
Um dies allgemeiner zu machen, können Sie eine Funktion in Ihrer .bashrc oder Ihrem Profil definieren.
Nebenbei bemerkt, der Grund, warum dies nicht von vornherein implementiert wurde, ist, dass das Encoding eine Eigenschaft jeder Datei selbst ist und sein sollte, nicht der Aufruf, der den Thread hervorbringt. Die konzeptuellen Räume, in denen Dateikodierung und Prozess-Laichen existieren, sind ziemlich unterschiedlich, zumindest für mein Denken.
Obwohl es spezielle Anwendungsfälle geben könnte, in denen diese Funktion hilfreich sein könnte, könnte das verwirrend sein.
Wenn Sie ein Python-Skript ausführen, kann es zwei verschiedene Kodierungen geben:
Ersteres ist im Skript statisch und seine einzige Verwendung besteht darin, dem Programmierer zu ermöglichen, Nicht-ASCII-Zeichen in mehreren Zeichenfolgen zu verwenden
Letzteres ist, was für IO verwendet werden sollte. Es kann sich bei verschiedenen Ausführungen des Skripts ändern.
Wenn Sie die Skriptcodierung auf der Befehlszeile (oder über Umgebungsvariablen) übergeben möchten, fügen Sie Verwirrung mit der lokalen Laufzeitsystemcodierung hinzu.
Tags und Links python command-line encoding