2016-01-29 117 views
0

由於某種原因,我的文件似乎無法訪問後,我調用readlines() 任何想法爲什麼?爲什麼我的文件關閉?

主要問題是for循環之後不起作用。它不會遍歷線條。

with open('wordlist.txt') as fHand: 
    content = fHand.readlines() 

    lines = 0 

    for _ in fHand: 
     lines += 1 
+4

我認爲你想'爲_在內容:'? –

+4

或者立即使用'len(content)',如果你只關心行數而不需要處理它們。 – tilpner

回答

4

fHand.readlines()讀取整個文件,因此您的文件指針位於文件末尾。

如果您確實想這樣做(提示:您可能不需要),您可以在for循環前添加fHand.seek(0),以將指針移回文件的開頭。

with open('wordlist.txt') as fHand: 
    content = fHand.readlines() 
    fHand.seek(0) 

    lines = 0 
    for _ in fHand: 
     lines += 1 

一般來說,.read*命令是不是你要找什麼,當你在Python中尋找文件。在你的情況下,你可能應該這樣做:

words = set() # I'm guessing 

with open("wordlist.txt") as fHand: 
    linecount = 0 
    for line in fHand: 
     # process line during the for loop 
     # because honestly, you're going to have to do this anyway! 
     # chances are you're stripping it and adding it to a `words` set? so... 
     words.add(line.strip() 
     linecount += 1 
+0

解決了我的問題:)感謝您的幫助! – Lithicas

相關問題