如何在Python中将段落添加到列表

问题描述

我想让用户输入一个文件名,该文件名包含用字符串'<NEW DOCUMENT>'分隔的几个段落。示例文本文件:

Look on the bright 
side of Life.
<NEW DOCUMENT>
look on the very,dark
side of the Moon
<NEW DOCUMENT>
is there life
on the moon

我想读取此文件并将其拆分,以使列表中的每个索引都有多行 例如,如果我打印:print(paragraph_list[0]),则输出将是第一段(文本文件在每个段中可以包含多于两行)

我尝试过的是:

def make_list_from_file(file_stream):
    paragraph_list = []
    for line in file_stream:
        line.strip().split('<NEW DOCUMENT>')
        paragraph_list.append(line)
    return paragraph_list

我尝试了其他组合,但是当我打印第一个索引时,输出只是文本文件中的第一行

Look on the bright

解决方法

以下方法应该起作用:

def make_list_from_file(file_stream):
    with open(file_stream) as f:
        t=f.read()
    paragraph_list=t.split('<NEW DOCUMENT>')
    return paragraph_list

如果要打印某些段落,结果将是:

>>> print(paragraph_list[0])
Look on the bright
side of Life.
,

您必须首先连接段落的行:

def make_list_from_file(file_stream):
    paragraph_list = []
    temp_paragraph = ""
    for line in file_stream:
        temp_paragraph += line + "<separator between lines>"
        if(line == "<NEW DOCUMENT>")
            paragraph_list.append(temp_paragraph)
    return paragraph_list

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...