python: sys.argv[0] 官方文档中的含义
引用自 docs.python.org:
“sys.argv 传递给 Python 脚本的命令行参数列表是脚本名称(是否是完整路径名取决于操作系统)。使用解释器的
-c
命令行选项,如果没有脚本名称,argv[0]
将设置为字符串 '-c'
。被传递给 Python 解释器,argv[0]
是空字符串。”
我是否遗漏了一些东西,或者 sys.argv[0]
总是返回脚本名称,并且要获取 '-c'
我必须使用 sys.argv[0]
? argv[1]?
我正在 GNU/Linux 上使用 Python 3.2 进行测试。
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 operating system dependent whether this is a full pathname or not). If the command was executed using the -c
command line option to the interpreter, argv[0]
is set to the string '-c'
. If no script name was passed to the Python interpreter, argv[0]
is the empty string."
Am I missing something, or sys.argv[0]
always returns the script name, and to get '-c'
I'd have to use sys.argv[1]
?
I'm testing with Python 3.2 on GNU/Linux.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不,如果您使用
-c
调用 Python 以从命令行运行命令,您的sys.argv[0]
将是-c
:No, if you invoke Python with
-c
to run commands from the command line, yoursys.argv[0]
will be-c
:当 Python 作为
python script.py
调用时,sys.argv[0] == 'script.py'
。当您调用 python -c 'import sys; 时print sys.argv' thensys.argv[0] == '-c'
指示脚本主体作为字符串在命令行上传递。When Python is invoked as
python script.py
thensys.argv[0] == 'script.py'
. When you invokepython -c 'import sys; print sys.argv'
thensys.argv[0] == '-c'
indicating the script body was passed as a string on the command line.python -c 执行在命令行上传递的命令,而不是文件中的脚本。
sys.argv[0]
将设置为"-c"
。如果您运行带有
-c
标志的脚本,那么是的,sys.argv[1]
将被设置为"- c"
和sys.argv[0]
将设置为脚本的名称。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"
andsys.argv[0]
will be set to the name of the script.