#python #list #line #paragraph
#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
Комментарии:
1. Можете ли вы объяснить простыми английскими словами пошаговый процесс чтения файла? Можете ли вы сопоставить каждую строку вашего кода с соответствующим предполагаемым шагом этого процесса? Какая часть конкретно, похоже, не выполняет то, что вы хотите?
Ответ №1:
Должно работать следующее:
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.
Ответ №2:
Сначала необходимо объединить строки абзаца:
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