Телеграмм бот выдает ошибку при поиска файла в списке

Суть бота в том, чтобы когда он замечал конкретное слово он отправлял фотографию. Сделал список, который состоит из внутренностей конкретной папки, однако, когда бот все таки реагирует на слово, то выдает ошибку, что нужного файла в папке нет, хотя он есть

import os
import pymorphy3
import telebot
import random

bot = telebot.TeleBot('API')  #задаем переменную, обращаемся к библиотеке, Telebot и присваеваем API
directory = r'C:\Directory'
photos = os.listdir(directory)

def check_words_for_photo(message):
    words_list = ['старт', '', '']
    morph = pymorphy3.MorphAnalyzer()
    for word in message.split():
        normal_word = morph.parse(word)[0].normal_form
        if normal_word in words_list:
            return True
    return False


@bot.message_handler(content_types=['text'])  #обработка команды
def main(message):
    # список путей до фото
    photo_list = os.listdir(directory)
    print(photo_list)
    if check_words_for_photo(message.text):
        photo_random = random.choice(photo_list)
        bot.send_photo(message.chat.id, photo=open(photo_random, 'rb'))


bot.polling(none_stop=True)

введите сюда описание изображения


Ответы (1 шт):

Автор решения: mrBars1k

Проблема возникает из-за того, что Вы передаёте только название файла, а не полный путь к нему. Поэтому Python не может его найти.

    photo_list = os.listdir(directory)
    print(photo_list)
    if check_words_for_photo(message.text):
        photo_random = random.choice(photo_list)
        # Объединяем путь к директории и название файла, чтобы получить полный путь;
        photo_path = os.path.join(directory, photo_random)  
        bot.send_photo(message.chat.id, photo=open(photo_path, 'rb'))
→ Ссылка