Quoting from docs.python.org:
\"sys.argv
The list of command line arguments passed to a Python script. argv[0]
is the script name (it is op
No, if you invoke Python with -c
to run commands from the command line, your sys.argv[0]
will be -c
:
C:\Python27>python.exe -c "import sys; print sys.argv[0]"
-c
python -c
executes a command passed on the command line, rather than a script from a file. sys.argv[0]
will be set to "-c"
.
If you run a script with a -c
flag, then yes, sys.argv[1]
will be set to "-c"
and sys.argv[0]
will be set to the name of the script.
When Python is invoked as python script.py
then sys.argv[0] == 'script.py'
. When you invoke python -c 'import sys; print sys.argv'
then sys.argv[0] == '-c'
indicating the script body was passed as a string on the command line.