Найти - Пользователи
Полная версия: парсить текстовый файл
Начало » Python для новичков » парсить текстовый файл
1 2
pasaranax
ой, не с двумя циклами, я имел ввиду вариант pill'а, но подправил бы его вот так:
big_list = []
for line in in_file:
if line[0] == '[':
big_list.append([])
elif line.strip():
big_list[-1].append(line)
pill
pasaranax
ой, не с двумя циклами, я имел ввиду вариант pill'а, но подправил бы его вот так:
Лаконичнее, но почему elif line.strip():?

Так ведь line.strip() уходит в никуда.

Наверное все же:
big_list = []
for line in in_file:
if line[0] == '[':
big_list.append([])
else:
big_list[-1].append(line.strip())
pasaranax
На случай такого входного файла:
[5й класс]
Иванов

Петров
[6й класс]


Сидоров
Пупкин

[7й класс]
Шлёпанцев

Коклюшкин
XPb14
pill Ваш сниппет неправильно работает, создаётся одномерный список, а в сниппете pasaranax всё как надо. Вот только я не могу понять чем второй вариант pasaranaxа лучше первого, не могли бы пояснить? дело только в понимании кода (“очевидности”)? Ну и спасибо конечно всем за помощь

сейчас задумался почему это не работает сниппет pillа, и чесно говоря просто стало лень разбираться, может я чего-то и напутал
pill
Проверил, вроде работает но кто его знает…
>>> pprint.pprint(big_list)
[, , ]
pasaranax
XPb14
Вот только я не могу понять чем второй вариант pasaranaxа лучше первого, не могли бы пояснить? дело только в понимании кода (“очевидности”)? Ну и спасибо конечно всем за помощь
Вообще-то, он совсем по другому действует. Первой строкой создается список с элементами - строками между двумя , при чем с мусором вроде покоцанного , а потом эти строки разбиваются по символу \n и записываются в этот же самый элемент.
А во втором варианте список просто ровно пополняется новыми элементами.
XPb14
понятно… и вот напишу для будущих поколений - достаточно веский недостаток первого способа (делящего по “\n”), что последняя строка должна быть пустой (тобиш после последнего элемента тоже должно быть “\n”)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB