Как отправить фото через телеграмм бота?
Есть файл photos.py, в нем хранятся названия фото.
PHOTOS =["Абакан.jpg","Абдулино.jpg","Абинск.jpg","Агидель.svg","Агрыз.jpg","Адыгейск.jpg","Азнакаево.png","Азов.jpg","Ак-Довурак.png","Алагир.jpg","Алапаевск.jpg"]В этом массиве не все названия фото.
Есть файл town.py, в нем хранятся города России.
towns = ["Абаза","Абакан","Абдулино","Абинск","Агидель","Агрыз"]В этом списке не все города.
Как сделать так, чтобы, когда пользователь вводил город, то отправлялось фото этого города. Есть также папка photos_qwerty, в ней хранятся фото.
def get_user_text(message):
with io.open('towns_for_bot.py', encoding='utf-8') as file_towns:
with io.open('photos.py') as file_photos:
if message.text in file_towns.read():
photo_name = f'{message.text}.jpg'
bot.send_message(message.chat.id, 'AMOGUS POKUS')
bot.send_media_group(message.chat.id, [telebot.types.InputMediaPhoto(open(f'{message.text}.jpg', 'rb'))])
else:
bot.send_message(message.chat.id, "Такого города нет")```
Ответы (1 шт):
Автор решения: dudha369
→ Ссылка
Попробуйте данный вариант:
from towns import towns
from photos import PHOTOS # Вы можете просто импоритировать переменые из ваших файлов .py
def get_user_text(message):
for p in PHOTOS:
for t in towns:
if p.startswinth(t):
with open(f"photos_qwerty\\{p}", "rb") as photo:
bot.send_photo(message.chat.id, photo)
break
else:
bot.send_message(message.chat.id, "Такого города нет")