парсинг текстовика и вывод нужной строки
помогите пожалуйста, с таким вопросом
есть pizza.txt .TXT:
ind: sushi
name: alice
item: 256899
=============
ind: pizza
name: sumit
item: 764061
=============
ind: sushi
name: alice
item: 256899
=============
ind: sushi
name: john
item: 674788
=============
ind: sushi
name: alex
item: 757864
мне надо что бы код вырезал слова опираясь на то есть ли в текстовике слово pizza и вырезать слова под словом pizza
мой код на python:
with open(os.path.join('pizza.txt'), mode='r', encoding='ISO-8859-1') as filee
for line in filee:
for line in 'pizza':
filee.readlines()
name = line.strip('name: ')
item = line.strip('item: ')
print(name)
print(item)
на выводе хочу что бы получилось так:
print(name)
print(item)
>>sumit
>>764061
Ответы (2 шт):
Автор решения: deethereal
→ Ссылка
Кажется вам нужно что-то такое?
with open(os.path.join('pizza.txt'), mode='r', encoding='ISO-8859-1') as filee:
lines =[s.strip() for s in filee.readlines()]
for i in range(0,len(lines),2):
if lines[i] == 'ind: pizza':
name = lines[i+1].strip('name: ')
item = lines[i+2].strip('item: ')
print(name)
print(item)
Вывод:
sumit
764061
Автор решения: Andy Pavlov
→ Ссылка
Можно воспользоваться регулярными выражениями. Ищем последовательность строк с помощью re.findall по шаблону, по нему вычленяем текст для строк name и item в список кортежей.
import re
with open('pizza.txt', mode='r', encoding='ISO-8859-1') as file:
data = file.read()
finds = re.findall('ind: pizza\nname: (\w+)\nitem: (\d+)', data)
Дальше можно любым способом распечатать:
for f in finds:
print(*f, sep='\n')