Ich habe ein Programm, das erfordert, dass ich chcp 65001
und set PYTHONIOENCODING=utf-8
eingeben, bevor ich den Code ausführen, oder es kann Zeichen nicht ordnungsgemäß verarbeiten. Gibt es eine Möglichkeit, den Code beim Öffnen automatisch zu öffnen? Es ist ein Schmerz und leicht zu vergessen, dies jedes Mal zu tun.Haben Code Terminal-Einstellungen nach dem Laden
Antwort
Eigentlich sollten Sie dies in Python tun können, aber vorausgesetzt, dass seine Laufzeit diese Voraussetzung hat, können Sie diese Einstellungen in einer Batch-Datei vornehmen, bevor Sie Python mit Ihrem Skript aufrufen. Angenommen, dieses Skript pyutf8.bat
genannt wird:
@echo off
setlocal
chcp 65001
set PYTHONIOENCODING=utf-8
python %1 %2 %3 %4 %5 %6 %7 %8 %9
dann könnten Sie Ihr Skript ausführen dies mit:
pyutf8 myscript.py
Die %1
usw. sind die Positionsparameter des Skripts. Sie können überprüfen, ob keine Parameter angegeben wurden, um einen Standardparameter anzugeben. Etwas wie folgt aus:
@echo off
setlocal
chcp 65001
set PYTHONIOENCODING=utf-8
if "%1"=="" goto default
python %1 %2 %3 %4 %5 %6 %7 %8 %9
goto :eof
:default
python myscript.py
Weiterführende Literatur:
Wäre ich in der Lage, den Stapel zu setzen, so öffnet er dann meine Skript? Ich habe eine Batch-Datei eingerichtet, um zwei Skripts zu öffnen, wenn sie ausgeführt wird, also ist das vielleicht möglich? – doejs
Sicher - ich schrieb ein Allzweckskript, aber Sie könnten Dinge kombinieren. –
Funktioniert wie ein Charme :) vielen Dank. BTW, welche Sprache ist das? das @echo aus – doejs
Wenn Sie nur Codepage 65001 für Konsole einstellen müssen I/O, dann sollten Sie das 'win_unicode_console' Paket anstelle . Die Wide-Character-Konsolen-API hat immer sowohl für die Eingabe als auch für die Ausgabe korrekt funktioniert und ging zurück zu NT 3.1. OTOH, Codepage 65001 in der Legacy-Codepage-API verwendend, erlaubt nicht die Eingabe von Nicht-ASCII-Text in irgendeiner Version von Windows, und es ist extrem fehlerhaft für die Ausgabe vor Windows 8. – eryksun