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

时间:2019-03-16 16:35:07

标签: python python-3.7

我希望我不要打扰任何人,因为它类似于已经提出的问题。 不过,我的问题是我没有找到txt文件的答案,而只找到了与BeautifulSoup一起工作的html / xml。另一个问题给出了Java的答案,但我只使用Python。

所以我有几个文本文档,我想为每个文本获取每个段落的第一句。

我想通过以下方式打开并阅读文字:

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

将是第一步,但是我没有找到任何答案可以使我进一步前进。 想法是在txt文件中包含一个段落:

在生活中的沧桑之中,没有任何事情比让您的订单在本月的第14天收到通知更使我感到焦虑。一方面,我被我的国家召唤,我以崇高的偏爱选择了一个静修之地,以他的崇高与爱心,他的声音我却永远听不见,但我却以ter媚的希望,以一成不变的决定,被选为我的祖国。我衰落的岁月的庇护所–一种撤退行动,由于倾向于养成习惯,以及由于时间造成的逐渐浪费,我的健康经常受到干扰,因此每天变得更加必要和珍贵。

但仅将此作为输出:

在生活中的沧桑之中,没有任何事情比让您的订单在本月的第14天收到通知更使我感到焦虑。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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。