Ошибка, которую вы получаете, связана с тем, что система не может найти указанный путь:
FileNotFoundError: [WinError 3] Системе не удается найти указанный путь: 'C:/Users/Пользователь/Desktop/project/nbot/venv/test'
1. Неправильный путь:
Проверьте, правильно ли указан путь к папке. В пути у вас есть русские символы ("Пользователь"), что иногда может вызывать проблемы в некоторых системах или библиотеках. Попробуйте использовать английские буквы для пути или убедитесь, что путь полностью правильный.
2. Папка не существует:
Убедитесь, что папка test действительно существует в указанном месте (C:/Users/Пользователь/Desktop/project/nbot/venv/). Если её нет, создайте её вручную или укажите правильный путь.
3. Права доступа:
Убедитесь, что у программы есть права доступа на чтение в эту папку. Иногда проблема может быть связана с ограниченными правами на доступ к файлам или папкам.
4. Отладка с помощью print:
path = "C:/Users/Пользователь/Desktop/project/nbot/venv/test"
print(os.listdir(path)) # Проверка содержимого директории
fnaf_file = open(random.choice(os.listdir(path)), 'rb')
Если вы увидите список файлов, значит директория существует. Если снова получите ошибку, возможно, что-то не так с правами или самой директорией.
5. Попробуйте абсолютный путь:
Вы можете попробовать использовать полный абсолютный путь вместо относительного. Это может помочь, если проблема в том, что текущая рабочая директория изменяется в ходе выполнения программы.
import os
import random
async def ranphoto(message: types.Message):
path = r"C:/Users/Пользователь/Desktop/project/nbot/venv/test"
try:
# Проверим, существует ли путь
files = os.listdir(path)
if not files:
await message.reply("В папке нет файлов")
return
# Открываем случайный файл
random_file = random.choice(files)
with open(os.path.join(path, random_file), 'rb') as fnaf_file:
await bot.send_photo(message.chat.id, fnaf_file)
except FileNotFoundError:
await message.reply(f"Путь {path} не найден")
except Exception as e:
await message.reply(f"Произошла ошибка: {str(e)}")
если я пробую использовать команду в боте, вылазит ошибка как на третьем скрине