Aiogram отправка фото на сервер, как присвоить имя файла?
Написал бота для загрузки фото на сервер. Всё работает, только сохраняет файл в виде X:\photo019\photos\file_77.jpg
. Подскажите, как сделать, чтобы добавлялась дата, например file_77_23.03.2023.jpg
или X:\photo019_23.03.2023\photos\file_77.jpg
либо как то иначе для исключения путаницы.
Вот мой код:
API_TOKEN = ""
button1 = KeyboardButton('019')
button2 = KeyboardButton('036')
greet_kb = ReplyKeyboardMarkup(resize_keyboard=True).row(
button1, button2)
logging.basicConfig(level=logging.INFO)
Bot = Bot(token=API_TOKEN)
storage = MemoryStorage()
dp = Dispatcher(Bot,storage=MemoryStorage())
button_checked = ['019', '036']
class Users_(StatesGroup):
users = State()
photo = State()
@dp.message_handler(commands=['start'], state="*")
async def process_start_command(message: types.Message,
state:FSMContext):
await message.reply("Выбери свой номер", reply_markup=greet_kb)
await state.set_state(Users_.users.state)
@dp.message_handler(state = Users_.users)
async def get_users(message: types.Message, state: FSMContext):
if message.text not in button_checked:
await message.answer("Пожалуйста, свой номер")
return
await state.update_data(user_name = message.text)
await state.set_state(Users_.photo.state)
await message.answer('Теперь загрузи фото:',
reply_markup=ReplyKeyboardRemove())
@dp.message_handler(content_types=['photo'], state = Users_.photo)
async def download_photo(message: types.Message, state:FSMContext):
file = await Bot.get_file(message.photo[-1].file_id)
user_data = await state.get_data()
#__________________________добавил
x = datetime.now()
file_name = x.strftime('%d.%m.%Y')
dirr = f'X:\photo'+user_data['user_name']
if (user_data['user_name'] == '019'):
with open('019', 'wb') as new_file:
#await file.download(destination_dir=(dirr)) изменил на
await file.download(destination_dir=(dirr +
f'{file_name}'))
if(user_data['user_name'] == '036'):
with open('036', 'wb') as new_file:
await file.download(destination_dir=(dirr))
await message.answer(f"Ваш номер: {user_data['user_name']}, Фото
загружено")
return`
await state.finish()
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
Получилось
X:\01923.03.2023\photos\file_77.jpg
Что не очень удобно подскажите как сделать, чтобы было
X:\019\23.03.2023\photos\file_77.jpg