繁体   English   中英

process_file(sys.argv [1])IndexError:列表索引超出范围

[英]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时,该块将运行。 我怀疑这可能是造成您的问题的原因-使其缩进,以便ifdef

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM