python: sys.argv[0] 在官方文档中的含义
引用自 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
python -c
是用来执行你在命令行中输入的命令,而不是从文件中读取的脚本。这样的话,sys.argv[0]
会被设置为 "-c"
。
如果你用 -c
标志来运行一个 脚本,那么 sys.argv[1]
会被设置为 "-c"
,而 sys.argv[0]
会被设置为这个脚本的名字。
8
当你用 python script.py
这个命令来运行 Python 程序时,sys.argv[0]
的值会是 'script.py',也就是说它记录了你运行的这个脚本的名字。而如果你用 python -c 'import sys; print sys.argv'
这个命令来运行 Python,sys.argv[0]
的值就会变成 '-c',这表示你在命令行中直接输入的是一段代码,而不是一个脚本文件。
13
不,如果你在命令行中用 -c
来运行 Python 命令,那么你的 sys.argv[0]
的值会是 -c
:
C:\Python27>python.exe -c "import sys; print sys.argv[0]"
-c