无法获得sys.argv [1]值

时间:2011-06-25 13:45:25

标签: python

我正在尝试执行一个非常简单的脚本。 它只打印传递的第一个参数。

代码是

import sys
def check(argument):
  '''Open, read, and print a file.'''
  print argument

if __name__ == "__main__":
  check(sys.argv[1])

然而,当我从命令行执行时,我总是得到这个错误

C:\>sample.py myname

Traceback (most recent call last):
  File "C:\sample.py", line 7, in <module>
    check(sys.argv[1])
IndexError: list index out of range

任何帮助

2 个答案:

答案 0 :(得分:5)

你的脚本很好,你执行它的方式是错误的。

C:>sample.py myname

这使用Windows文件扩展名检测来使用python解释器启动它。参数可能会以这种方式丢失。尝试执行它:

C:>python sample.py myname

另请参阅issue 7936

答案 1 :(得分:1)

这可能是Windows问题:http://bugs.python.org/issue7936