我有使用Python中的PyDev爲Eclipse,好吧3.3工作,所以這是我的代碼:的Python 3.3 readlines方法截斷文本文件
countdata = open(countfilename, 'r')
countlist = countdata.readlines()
print(len(countlist))
genecountline = wordlist(countlist[-1])
print(genecountline)
countfilename
指的是從產生的7847線相當長的文本文件一個文本文件,使用我的機器學習課程中的教師給我的腳本(我必須使用2to3將所述腳本轉換爲Python 3)。
wordlist
是我構建的一個簡單的函數,它接受一行文本並將其中的單詞作爲列表返回。
我把整個文件拖入一行代碼中,這樣我就可以隨意引用特定的行來進行計算。無論我在所有readlines方法讀取它們一次或遍歷文件,並通過一個這樣的行添加到列表中的一個:
countdata = open(countfilename, 'r')
countlist = []
for line in countdata:
countlist.append(line)
無所謂。無論哪種方式,我這樣做,print(len(countlist))
給我大約7630
,我說大約是因爲有時它低至7628
或高達7633
。由countlist[-1]
返回的特定行總是不同的(該文件是使用生成器對象構建的,正如我的教師構建該腳本並且我不完全確定它是如何工作的)。
genecountline = wordlist(countlist[-1])
print(genecountline)
我只是想看看python認爲文件的最後一行是什麼。當我在文本板中打開文件時,它返回的行實際上是由len(countlist)
返回的行號。換句話說,它似乎忽略了最後一個約。我的文件有210行。所以我的問題是如何解決這個問題,以及如何防止它再次這樣做?
添加'wordlist()'的代碼可能有助於解決問題 – MattDMo 2013-03-23 20:13:12