文件I / O隔离文本文件中的单词

时间:2014-03-23 18:35:48

标签: python file input output

我目前正在使用python 2.7.5进行文件读取任务。我们的第一个任务是读入提供给我们的两个文件(一个是故事,另一个是字典)。字典文件中每行有一个单词。然后,检查故事文件中的每个单词以查看它是否在字典中。如果是,我们打印这个词。这是我的代码:

story = set(open("story.txt").read().strip().split("\n"))
dictionary = open("dictionary.txt").read().strip().split("\n")

for word in story:
    word = word.strip(',():;.')
    if word not in dictionary:
        print(word)

我目前在故事中获取每个单词时遇到问题,因为该程序正在从故事文件中输出各种LINES。我很感激在故事中找到每个单词的一些帮助。任何帮助表示赞赏。谢谢。

2 个答案:

答案 0 :(得分:3)

阅读故事时,只需使用split(),而不是split('\n')

In [1]: '''This is a text.
   ...: There is also a second line.'''.split()
Out[1]: ['This', 'is', 'a', 'text.', 'There', 'is', 'also', 'a', 'second', 'line.']

第一个调用在所有空格上分割,第二个调用仅在换行符上分割。

在拆分文本之前,最好删除标点符号;

with open('story.txt', 'r') as infile:
    data = infile.read()
data = data.translate(None, ';:.,!?')
words = data.split()

答案 1 :(得分:0)

编程正在输出故事的行,因为当您说.split("\n")时,您将文本拆分为行列表。你为什么这样做?另外,想想当你在句子开头有单词时会发生什么。