Как разбить текстовый файл на определенный символ, создав несколько текстовых файлов - PullRequest
0 голосов
/ 07 января 2019

У меня есть текстовый файл, содержащий информацию о разных группах, и группы разделяются знаком '='. Я хочу разделить эти файлы на два текстовых файла для последующего редактирования.

Текстовый файл выглядит так:

GROUP 001
LISA ----- 134.5
ROLF ----- 122.0
NICOLAS -- 103.4
=
GROUP 002
NICOLE --- 141.1
ADAM ----- 98.2

И я хочу два отдельных текстовых файла (желательно с именами 01.txt и 02.txt) с:

LISA ----- 134.5
ROLF ----- 122.0
NICOLAS -- 103.4

И другой файл

NICOLE --- 141.1
ADAM ----- 98.2

Я просто попытался прочитать файл и разбить его на знак '=', но это возвращает мне список, содержащий всю остальную информацию о группе в качестве записи.

groups = open('input.txt').read()
groups_divided = groups.split("=\n")
print groups_divided

1 Ответ

0 голосов
/ 07 января 2019

Вы хорошо начали, вот один из способов выполнить задачу,

groups = open('input.txt').read()
groups_divided = groups.split('=\n')

for group in groups_divided:
    temp = group.split('\n')
    with open(temp[0].split()[1] + '.txt', 'w') as out:
        out.write("\n".join(temp[1:]))

То, что вы получили после groups.split('=\n'), представляло собой список сгруппированных строк в строке from. Эта программа обрабатывает каждую строковую группу в этом списке, то есть каждую физическую группу, и сохраняет обработанную версию в файл.

Сначала разбивает строку группы по символу новой строки '\n', создавая temp. Затем он извлекает номер группы для имени выходного файла. Наконец, он сохраняет все строки в группе (сохраненные в temp), за исключением первой, которая является строкой GROUP 00#. При сохранении он объединяет все сохраненные строки с символами новой строки, которые в противном случае удаляются с помощью split('\n').

...