En Python2.7 sur environnement Windows Par exemple, si vous avez le test.py suivant
import sys
print(len(sys.argv))
Même si je l'exécute à partir de l'invite de commande avec un argument, sys.argv vaut toujours 1.
> test.py a b c
1 // <= NG:Devrait être 4
Il n'y a aucun problème si vous l'exécutez à partir de la commande python.
> python test.py a b c
4 // <= OK
Il a été répertorié comme un problème sur https://bugs.python.org/issue7936. En conclusion, dérangez le registre.
Lancez regedit et accédez à HKEY_CURRENT_USER \ Software \ Classes \ Applications \ python.exe \ shell \ open \ command
Si cette valeur est C: \ Python27 \ python.exe ""% 1 "`, modifiez-la en
C: \ Python27 \ python.exe ""% 1 "% *`.
Cela devrait permettre à sys.argv d'être transmis correctement.
> test.py a b c
4 // OK
Même ainsi, c'était un bogue qui a été signalé il y a 6 ans, donc je voulais vraiment qu'il soit corrigé.
Recommended Posts