Телеграм бот, создание папок os.makedirs()
Создаю телеграмм бота на python(python-telegram-bot = 13.6)Возникла проблема после заливания на хостинг. Метод os.makedirs(), который принимает значения context.user_data перестал работать. Принимает только строки. Что можно придумать? Пробовал использовать pathlib, но ошибка такая же. ОС Ubuntu 18.04. Есть основная папа "info" в ней расположены папки с названиями специальностей. И в этих папках уже создается папка пользователя. К примеру: info/Программист/Иванов Иван Иванович.
context.user_data[SURNAME] = first_name
context.user_data[NAME] = surname
context.user_data[LASTNAME] = last_name
p = Path(context.user_data[SURNAME])
p.mkdir(parents = True)
context.bot.send_message(
chat_id = update.message.chat.id,
text = "Укажите ваш пол",
reply_markup = select_male
)
Ответы (1 шт):
Автор решения: Violet
→ Ссылка
from pathlib import Path
dpath = '/opt/tlgrm_bot/'
# Создать папку название которой будет содержать id пользователя по пути /opt/tlgrm_bot/user_data/%id пользователя%/
Path(dpath + 'user_data/{}'.format(message.chat.id)).mkdir(parents=True, exist_ok=True)
# Если тип сообщения фото, сохранить изображение по пути /opt/tlgrm_bot/user_data/%id пользователя%/
if message.content_type == 'photo':
file_info = bot.get_file(message.photo[len(message.photo) - 1].file_id)
downloaded_file = bot.download_file(file_info.file_path)
src = dpath + 'user_data/{}/'.format(message.chat.id) + file_info.file_path
with open(src, 'wb') as new_file:
new_file.write(downloaded_file)