#python #telegram #telegram-bot
Вопрос:
В настоящее время следующий код загрузит документ, отправленный пользователем боту telegram.
def downloader(update: Update, context: CallbackContext): with open(f"{update.message.from_user['id']}.xlsx", 'wb') as f: context.bot.get_file(update.message.document).download(out=f)
Можно ли прочитать/извлечь содержимое документа без необходимости загружать документ через telegram и затем немедленно хранить его в базе данных?
if Update.message.document is True: user_id = Update.message.from_user['id'] df_xlsx = pd.read_excel(f'{user_id}', header=0) print(df_xlsx) # Updates sql database from xlsx with conn: c.execute(f"""CREATE TABLE IF NOT EXISTS {user_id} ( Exercise, Sets, Reps, Intensity, Load, Tempo, Rest )""") df_xlsx.to_sql(f'{user_id}', conn, if_exists='append', index=False)
В настоящее время мое решение состоит в том, чтобы прочитать csv-файл из Google листов, используя requests
, как показано ниже.
def handle_message(update: Update, context: CallbackContext): csv_url = update.message.text res = rs.get(url=csv_url)
Комментарии:
1. Как вы думаете, как вы достигнете того, о чем заявили? Читать без загрузки? Лучшее, что вы можете сделать, — это сначала загрузить его, прочитать и записать в базу данных, а затем удалить. Например, вам нужен только предварительный просмотр, затем вы загружаете первые несколько байтов с начала и показываете только этот фрагмент (который является предварительным просмотром, а не полными данными).