python:sys.argv [0]在官方文档中的含义

时间:2011-03-07 16:44:20

标签: python argv sys

引自docs.python.org

sys.argv传递给Python脚本的命令行参数列表。argv[0]是脚本名称(无论是否为完整路径名,它依赖于操作系统)。如果命令是使用解释器的-c命令行选项执行,argv[0]设置为字符串'-c'。如果没有脚本名称传递给Python解释器,argv[0]为空字符串“

我是否遗漏了某些内容,或sys.argv[0]始终返回脚本名称,并且'-c'我必须使用sys.argv[1]

我正在使用GNU / Linux上的Python 3.2进行测试。

3 个答案:

答案 0 :(得分:10)

不,如果您使用-c调用Python从命令行运行命令,则sys.argv[0]将为-c

C:\Python27>python.exe -c "import sys; print sys.argv[0]"
-c

答案 1 :(得分:5)

当Python被调用为python script.py然后sys.argv[0] == 'script.py'。当您调用python -c 'import sys; print sys.argv',然后sys.argv[0] == '-c'指示脚本主体在命令行上作为字符串传递。

答案 2 :(得分:0)

python -c执行在命令行上传递的命令,而不是文件中的脚本。 sys.argv[0]将设置为"-c"

如果您运行带有-c标记的脚本,则是,sys.argv[1]将设置为"-c"sys.argv[0]将被设置到脚本的名称。