![](/img/trans.png)
[英]IndexError: list index out of range: sys.argv[1] out of range
[英]process_file(sys.argv[1]) IndexError: list index out of range
这是我正在使用的代码,来自实践编程:
import sys
def process_file(filename):
'''Open, read, and print a file.'''
input_file = open(filename, "r")
for line in input_file:
line = line.strip()
print line
input_file.close()
if __name__ == "__main__":
process_file(sys.argv[1])
在将此模块导入IDLE并通过process_file()传递文本文件参数后,我收到此错误:
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
process_file("data.txt")
File "C:\Python26\read_file_2.py", line 14, in process_file
process_file(sys.argv[1])
IndexError: list index out of range
如何在不收到此错误的情况下使该程序正常运行? 任何帮助表示赞赏。
你应该移动
if __name__ == "__main__":
process_file(sys.argv[1])
在process_file
函数之外。 导入IDLE时,请确保process_file
可用并将文件名传递给它。
看来您已经
if __name__ == "__main__":
process_file(sys.argv[1])
块的缩进级别与process_file
定义的其余部分相同,因此当您从另一个模块调用process_file
时,该块将运行。 我怀疑这可能是造成您的问题的原因-使其缩进,以便if
与def
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.