Загрузить файл с помощью telegram-загрузить в flask?

#python #telegram #telegram-upload

#python #телеграмма #telegram-загрузка #telegram #telegram-загрузить

Вопрос:

Мы можем загрузить файл с помощью telegram-upload библиотеки, используя следующую команду в терминале

 telegram-upload file1.mp4 /path/to/file2.mkv
  

Но если я хочу вызвать это внутри функции python, как мне это сделать? Я имею в виду, что в функции python, если пользователь передает путь к файлу в качестве аргумента, то эта функция должна иметь возможность загружать файл на сервер telegram.Это не упоминается в документации.
Другими словами, я хочу спросить, как выполнить или запустить команды оболочки из функции python?

Комментарии:

1. Если в библиотеке есть python API (вместе с командным интерфейсом), рассмотрите возможность его использования. В противном случае загляните в модуль подпроцесса

Ответ №1:

Для telegram-upload вы можете использовать upload метод в telegram_upload.management и
для telegram-download download метода использования в одном файле.

Или вы можете посмотреть, как они там реализованы.

 from telegram_upload.client import Client
from telegram_upload.config import default_config, CONFIG_FILE
from telegram_upload.exceptions import catch
from telegram_upload.files import NoDirectoriesFiles, RecursiveFiles

DIRECTORY_MODES = {
    'fail': NoDirectoriesFiles,
    'recursive': RecursiveFiles,
}

def upload(files, to, config, delete_on_success, print_file_id, force_file, forward, caption, directories,
           no_thumbnail):
    """Upload one or more files to Telegram using your personal account.
    The maximum file size is 1.5 GiB and by default they will be saved in
    your saved messages.
    """
    client = Client(config or default_config())
    client.start()
    files = DIRECTORY_MODES[directories](files)
    if directories == 'fail':
        # Validate now
        files = list(files)
    client.send_files(to, files, delete_on_success, print_file_id, force_file, forward, caption, no_thumbnail)
  

Ответ №2:

Я нашел решение.Используя модуль ОС, мы можем запускать строки командной строки внутри функции python, т.е. os.system('telegram-upload file1.mp4 /path/to/file2.mkv')