2016-02-14 107 views
1

我是Python的入門者,正在計算一個txt文件的行數。我跟隨正是因爲什麼在Coursera,一個在線課程是爲如下:使用Python計算行數

fhand=open("Read Me.txt") 
count=0 
for line in fhand: 
    count=count+1 
print(count) 

在網上當然,這確實給行權數量,但我不斷獲取0。我想這可能與該軟件的版本有關(我的是Python3.4.3,在線課程是Python2),或者是Mac系統的文本編輯器?預先感謝您的建議。

+0

這應該工作。你確定你正在執行正確的腳本嗎?你也確定文件中有任何行嗎? –

+3

您是否已經*先讀過文件,忘記重新打開或重新開始搜索?一旦讀取,文件不會從下一次讀取時自動開始。 –

+0

MartijnPieters是正確的,或者文件中沒有任何內容。不過,作爲一個評論,你可以說'count = len(open(「Read Me.txt」)。readlines())' – zondo

回答

0

如果這是所有的代碼,那麼你的文件必須是空的。如果存在代碼,您可能認爲open(...)調用和for line in fhand:循環之間不相關,則可能是您讀取該文件並且未找到開頭。如果是這樣的話,你可以做fhand.seek(0)回到文件的開頭。然而,這並不是找到文件中行數的最簡單方法。您可以使用count = len(open("Read Me.txt").readlines())count = len(line for line in open("Read Me.txt"))

+0

謝謝!我已經嘗試了兩種方法,他們的工作。 –

0

您的代碼在您的帖子中的'它是'應該工作。但是,如果上面只是完整代碼的一部分,那麼在for循環之前您可能正在讀取一次文件。下面的例子可能會給你一個想法:

fhand = open("Read Me.txt") 
count=0 
for line in fhand: 
    count=count+1 
print(count) 

count=0 
for line in fhand: 
    count=count+1 
print(count) 

剛剛嘗試之前第二for環加fhand.seek(0),問題會得到解決。

+0

你是對的!我做了一些調整,現在它可以工作。謝謝! –