In Python2.7 unter Windows Zum Beispiel, wenn Sie die folgende test.py haben
import sys
print(len(sys.argv))
Selbst wenn ich es an der Eingabeaufforderung mit einem Argument ausführe, ist sys.argv immer 1.
> test.py a b c
1 // <= NG:Sollte 4 sein
Es gibt kein Problem, wenn Sie es über den Python-Befehl ausführen.
> python test.py a b c
4 // <= OK
Es wurde als Problem unter https://bugs.python.org/issue7936 aufgeführt. Abschließend verwirren Sie mit der Registrierung.
Starten Sie regedit und gehen Sie zu "HKEY_CURRENT_USER \ Software \ Classes \ Applications \ python.exe \ shell \ open \ command"
Wenn dieser Wert "C: \ Python27 \ python.exe" "% 1" ist, ändern Sie ihn in "C: \ Python27 \ python.exe" "% 1"% * ".
Dadurch sollte sys.argv korrekt übergeben werden können.
> test.py a b c
4 // OK
Trotzdem war es ein Fehler, der vor 6 Jahren gemeldet wurde, also wollte ich wirklich, dass er behoben wird.
Recommended Posts