打印多个txt文档中每个段落的第一句

问题描述 投票:0回答:2

我希望我不会打扰任何人这个问题,因为它类似于已经被问到的问题。不过,我的问题是我找不到txt文件的答案,但仅适用于使用BeautifulSoup的html / xml。另一个问题给出了Java的答案,但我只使用了Python。

所以我有几个文本文档,我希望每个段落的第一句话都能得到它们。

我想打开并阅读文字:

speech1_content = open("1789-04-30-George-Washington.txt", "r")

这将是第一步,但我找不到任何能够让我更进一步的答案。想法是在txt文件中有一个段落:

在事件发生的变迁中,任何事件都不会让我感到更加焦虑,而不是通过你的订单传递通知,而是在本月的第14天收到。一方面,我被我的国家传唤,我的声音是我永远听不到的,只有崇拜和爱,来自我以最好的偏好选择的退却,并且,在我恭维的希望中,有一个不变的决定,作为我衰落的庇护 - 一个每天变得更加必要的撤退,以及因为倾向于增加习惯而对我来说更加珍贵,以及经常中断我的健康以及时间上逐渐浪费的事情。

但只有这个作为输出:

在事件发生的变迁中,任何事件都不会让我感到更加焦虑,而不是通过你的订单传递通知,而是在本月的第14天收到。

非常感谢你的帮助。

python python-3.7
2个回答
0
投票

这将为您提供存储每行第一句的字符串列表:

speech1_lines = speech1_content.readlines()
speech1_first_sentences = [line.split('.')[0] for line in speech1_lines]

然后,您可以打印列表

print(speech1_first_sentences)

或者迭代它

for sentence in speech1_first_sentences:
    print(sentence)

0
投票

所以我想你需要读取一个文件,直到第一个换行符('\ n')。

在Python中,我们更喜欢打开一个文件:

with open(filename) as f:
    lines = f.readlines()

现在,一行直到第一个换行符。第一段只是第一行([0])和第一段。可以通过callind获取字符串上的find函数。在你的情况下:

eos = lines[0].find('.')
first_sentence = lines[0][0:eos]

如果你需要更复杂的句子查找器,你应该看看NLTK。

© www.soinside.com 2019 - 2024. All rights reserved.