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

7 投票
3 回答
44928 浏览
提问于 2025-04-16 13:10

引用自 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

撰写回答