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

发布于 2024-10-20 23:28:52 字数 484 浏览 3 评论 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

时光病人 2024-10-27 23:28:53

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

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

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
§普罗旺斯的薰衣草 2024-10-27 23:28:53

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

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.

笑忘罢 2024-10-27 23:28:53

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" and sys.argv[0] will be set to the name of the script.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文