【问题标题】:python: sys.argv[0] meaning in official documentationpython: sys.argv[0] 官方文档中的含义
【发布时间】:2011-07-10 11:51:29
【问题描述】:

引用docs.python.org:

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

我是否遗漏了什么,或者sys.argv[0] 总是返回脚本名称,而要获得'-c',我必须使用sys.argv[1]

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

【问题讨论】:

  • 嗯,我愚蠢地误解了-c 只是一个示例选项,而不是python 的实际选项,没关系...

标签: python argv sys


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 我只是把-c当作例子,就像script -c一样,并没有把它当作真正的python选项...... ^^'
      猜你喜欢
      • 2023-02-25
      • 2017-03-21
      • 1970-01-01
      • 2018-07-08
      • 1970-01-01
      • 2018-10-22
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      相关资源
      最近更新 更多