我目前正在使用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)
我目前有问题获得故事中的每个单独的单词,因为这个程序是从故事文件输出各种行。如果你能帮我找出故事中的每个单词,我会很感激的。任何帮助都是感激的。谢谢。
阅读故事时,只用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()
程序正在输出故事的行,因为当您说.split("n")
时,您正在将文本分割成行列表。你为什么要这么做?此外,考虑一下当你在句子的开头使用单词时会发生什么。