好的,我使用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
它打印第一行但在第二行停止?为什么呢?
答案 0 :(得分:2)
Python中的计数从0
开始,因此它应该是num = 0
。第一行是file.readlines()[0]
。
然而,这种方式看起来更好:
for line in self.wordlist:
print line