使用功能后为什么无法从文件读取?

时间:2018-09-15 19:39:13

标签: python

我的代码应该能找到文本中单词的出现。出于某种原因,在使用此功能之后,将从此特定文本won't work中读取方法(.readlines()方法为空列表,.read()为空)。代码是:

def counter(new):
    words = dict()
    lines=new.readlines()
    for line in lines:
        text=line.split()
        for word in text:
            if word not in words:
                words[word]=1
            else: words[word]+=1
    return [tuple(x) for x in words.items()]

我没有发现任何可能导致此错误的错误。

1 个答案:

答案 0 :(得分:2)

我假设new是调用open(..)的结果,它应该是您要传递给函数的文件句柄。调用readlines()会使它耗尽,因此尝试使用相同的句柄从文件中读取将不起作用。要么打开一个新的句柄,要么可以调用new.seek(0)(比打开一个全新的句柄更好的选择-尽管在某些情况下会再次返回相同的句柄,但在这里不要深入探讨)将索引移到文件的开头。