提供命令行arg时,scriptname是否为空?

时间:2013-01-08 06:46:27

标签: python

使用模块sys可以得到像这样的命令行参数

import sys
for x in sys.argv:
    print x

然后在命令shell [ubunto]

>>python file.py 1, 2, 3

这将打印 文件[文件名] 1 2 3 现在我怀疑了 在python documentaion 3.0.1中提到了

如果没有脚本名称传递给Python解释器,则argv [0]为空字符串。

>>python  1, 2, 3

如果我没有传递脚本名称,则会导致“无法打开文件”的错误。当你没有传递脚本名称时,如何将argv [0]初始化为空字符串?

1 个答案:

答案 0 :(得分:1)

在shell中,您可以执行python -c "print 'Hello World!'"之类的操作,也可以通过管道将源代码放入python中。在这种情况下,python没有可用的文件名。在所有其他情况下,Python将具有文件名。即使你使用shebang-line:

#! /usr/bin/python

然后致电

./file.py 1, 2, 3

shell会将其转换为正确的解释器调用

python file.py 1, 2, 3