Python 无法获取sys.argv[1]值
我正在尝试执行一个非常简单的脚本。 它只打印传递的第一个参数 代码是Python 无法获取sys.argv[1]值,python,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 l
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
C:\>sample.py myname
回溯(最近一次呼叫最后一次):
文件“C:\sample.py”,第7行,在
检查(sys.argv[1])
索引器:列表索引超出范围
任何帮助您的脚本都很好,但您执行脚本的方式是错误的
C:>sample.py myname
这使用windows文件扩展名检测来启动python解释器。争论可能会以这种方式消失。试着像这样执行它:
C:>python sample.py myname
另外,请参见。您的脚本很好,但执行它的方式是错误的
C:>sample.py myname
这使用windows文件扩展名检测来启动python解释器。争论可能会以这种方式消失。试着像这样执行它:
C:>python sample.py myname
另外,请参见。这可能是Windows问题:这可能是Windows问题:与您的问题没有直接关系,但您应该始终确保捕获所有可能的错误。这包括检查列表索引是否不超出范围,例如:try:arg=sys.argv[1],索引器除外:pass else:check(arg)与您的问题没有直接关系,但您应始终确保捕获所有可能的错误。这包括检查列表索引是否超出范围,例如:try:arg=sys.argv[1],索引器除外:pass else:check(arg)为什么?它提供了一个潜在的解决方案,如果你通读bug报告上的线程,为什么?它提供了一个潜在的解决方案,如果你通读错误报告上的线程。谢谢,我按照7936期中的步骤编辑注册表值,它解决了我的问题。谢谢,我按照7936期中的步骤编辑注册表值,它解决了我的问题