2015-09-14 82 views
-2

好吧,我使用Python和TK寫一個程序。我需要它來打開文件和讀取一行,打印出來,然後讀取下一行並打印。我第一次使用:Python的Tk的IndexError:列表索引超出範圍

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

調用'readlines方法()'不止一次是不必要的。並且它不起作用,因爲在第一次調用之後文件光標位於文件的末尾。 –

回答

2

Python中的計數開始於0,所以它應該是num = 0。第一行是file.readlines()[0]

然而,這樣看起來更好:

for line in self.wordlist: 
    print line 
相關問題