/ebook.
unzip -v ru.zip/ в начале.
По сути что оно делает. Берет XML файл. Собирает из него массив того что надо загрузить в базу.А если речь о прейскуранте, когда данные прейскуранта обычно заменяются старые на новые целиком, тогда имеет смысл создать новую таблицу с одного XML, а старую удалить. Тогда таблица текущего прейскуранта не будет запираться на обновление.
И по каждому элементу массива смотрит, если в базе есть (ещет по коду), то обновляет свойства, если нет, добавляет новый элемент.
await bot.send_document(chat_id=message.chat.id, document=bb)import pandas
from io import BytesIO
one = 'ttt'
to_add = {'1': one,
'2': one,
'3': one,
'4': one,
'5': one,
'6': one,
'7': one}
bb = BytesIO()
bb.name = f'test.xlsx'
bb.encoding = "utf-8"
df = pandas.DataFrame()
df = df.append(to_add, ignore_index=True)
print(df)
df.to_excel(bb, index=False)
with open(bb.name, 'wb') as f:
f.write(bb.getbuffer())
bot = Bot(token=API_TOKEN)
loop = asyncio.get_event_loop() # В Python 3.7: asyncio.get_running_loop()
dp = Dispatcher(bot, loop=loop)if message.text == 'a':
dp.loop.create_task(periodic()) # создаем задачу асинхронно и НЕ дожидаемся ее выполнения (await)
print("I'm working hard")async def periodic():
time.sleep(5) # Delay for 5 seconds.