问题描述
我想让用户输入一个文件名,该文件名包含用字符串'<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