我正在使用 PyDev for Eclipse 使用 Python 3.3,好吧,这是我的代码:
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 认为文件的最后一行是什么。当我在 textpad 中打开文件时,它返回的行实际上是len(countlist)
. 换句话说,它似乎忽略了最后一个大约。我的文件有 210 行。所以我的问题是如何解决这个问题,以及如何防止它再次这样做?