Geben Sie die Codierung der Python-Quelldatei über die Befehlszeile an

9

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%     
user3414663 18.05.2015, 08:49
quelle

2 Antworten

3

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.

    
a p 18.05.2015 09:09
quelle
1

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:

  • die Codierung des Quellskripts, die im Skript selbst über PEP0263
  • definiert werden kann
  • die Umgebungscodierung, die durch Umgebungsvariablen definiert werden kann

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.

    
Serge Ballesta 18.05.2015 09:11
quelle

Tags und Links