Форум сайта python.su
0
Здравствуйте. Написал на Python простенького бота для Telegram. Суть проблемы в следующем: есть txt файл с информацией в формате “{ключевое слово}информация”. В таком формате несколько строк. Как найти по ключевому слову строку и вывести ее пользователю? Пробовал с простым поиском, он ищет просто слово. Не могу понять, как добавить фильтр на {ключевое слово} с учетом скобок. И как вывести потом именно строку, а не только искомое слово.
Офлайн
35
tst.txt:
{keyword}info
123
{keyword}info2
fgfd
23fg>>> with open(r'c:\tst.txt', 'r') as f:
... for line in f.readlines():
... if line.startswith('{keyword}'):
... print line
...
{keyword}info
{keyword}info2
Офлайн
0
Спасибо большое! Работает. Только теперь возник ещё один вопрос. А как вывести содержимое строки без {ключевое слово}?
Офлайн
221
distortion
значит написали бота , а с такой задачей не справились? серьезно?
Офлайн
0
Не совсем написал. Просто исправил код, который нашёл на Хабре и добавил свои функции. С Python почти не знаком был, узучал по мере необходимости. Такого фильтра не видел - как следствие не изучал ещё. Да и написав бота с нуля, я бы не обращался в ветку “для новичков”. Мне так кажется)
Офлайн
221
distortion
Это технический форум, здесь надо быть внимательным к тому что пишешь)
вместо
print line
print line.split('}')[-1]
Офлайн
253
:) :) :) Сейчас модно применять функциональный стиль. Его любители скfжут что ваша задача решается в одну строчку. Но поскольку язык питон не функциональный :( :( :( то строчки получается 2
import re print(re.findall(r"\{(\w+)\}(\w+)",open("a.txt","r").read()))
{keyword}info0 adda {keyword}info1 123 {keywordx}info2 fgfd 23fg >>> [('keyword', 'info0'), ('keyword', 'info1'), ('keywordx', 'info2')]
Офлайн
0
JOHN_16Спасибо! Все работает! И еще один вопрос, если можно
. Как сделать, чтоб поиск не учитывал регистр?
Офлайн
221
distortion
у строк есть метод который переводит регистр. Например как то так :
if line.lower().startswith('{keyword}')
Офлайн
0
‘str’ object has no attribute ‘line’ ошибка появляется
Офлайн