Python Tk IndexError:列表索引超出范围

时间:2015-09-14 01:20:52

标签: python tkinter

好的,我使用python和tk编写程序。我需要它来打开一个文件并读取一行,打印它,然后读取下一行并打印它。我首先使用:

self.wordlist = tkFileDialog.askopenfile(mode='rb',title='Select a wordlist')

在我的代码的另一部分:

num = 1
while True:
    line = self.wordlist.readlines()[num].strip()
    print line
    num = num + 1

当我运行它时,它返回:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 1532, in __call__
    return self.func(*args)
  File "C:\Users\Owner\Desktop\hashgui.py", line 109, in hashcrack_command
    line = self.wordlist.readlines()[num].strip()
IndexError: list index out of range

它打印第一行但在第二行停止?为什么呢?

1 个答案:

答案 0 :(得分:2)

Python中的计数从0开始,因此它应该是num = 0。第一行是file.readlines()[0]

然而,这种方式看起来更好:

for line in self.wordlist:
    print line