无法获取sys.argv[1]值

1 投票
2 回答
1196 浏览
提问于 2025-04-16 20:16

我正在尝试运行一个非常简单的脚本。这个脚本只会打印出传入的第一个参数。

代码如下

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 个回答

5

你的脚本没问题,问题出在你执行它的方式上。

C:>sample.py myname

这个方法是通过Windows的文件扩展名来启动Python解释器的。这样可能会导致参数丢失。试试这样执行:

C:>python sample.py myname

另外,可以看看 这个问题

1

这可能是一个Windows系统的问题:http://bugs.python.org/issue7936

撰写回答