我目前正在使用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。我很感激在故事中找到每个单词的一些帮助。任何帮助表示赞赏。谢谢。
答案 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")
时,您将文本拆分为行列表。你为什么这样做?另外,想想当你在句子开头有单词时会发生什么。