无法将带有文本的文件拆分为单独的单词

时间:2019-06-21 09:38:39

标签: python python-2.7 split append nltk

我一直试图将带有文本的文件拆分为不同的单词。 我尝试使用iter方法,nltk模块并仅进行拆分,但是当我尝试将结果追加到列表时未添加任何内容。 我处理文件的语法可能存在问题。

txt = open(game_file)
print txt.read()

names = []
linestream = iter(txt.read())
for line in linestream:
    for word in line.split():
        names.append(word)

当我尝试打印列表名称时,我只会得到'[]'。

3 个答案:

答案 0 :(得分:1)

删除(?,?,1024),您正在遍历打开的空文件

或者创建新变量print txt.read()并对其进行填充

答案 1 :(得分:0)

执行txt.read()后,您已经在文件末尾。因此,当您尝试重新启动它时,文件指针已经在结尾,并且找不到任何内容。 尝试删除第二行,它应该可以工作!

此外,您无需执行iter(txt.read())for line in txt应该可以工作!

答案 2 :(得分:0)

创建_any_file_obj_.read()“ iter” 对象将返回iter对象,该对象遍历文件中存在的每个单个字符。您肯定不想在这里达到目的,因为您希望将文件文本拆分为不同的单词。 如果要获取文本文件中的每个单词,则可以采用以下方法。

word_list = []
txt = open(any_file)    # creating file object

for line in txt.readlines():
    if line:
        [word_list.append(word) for word in line.split()]
txt.seek(0)

最后一行 txt.seek(0)非常重要。

一直以来,您的代码都给出了空列表[],因为经过一整遍迭代后,文件的当前位置指向文件末尾(EOF)。 _file_obj_.seek()可用于将文件的当前位置返回到打开文件中所需的位置