Downloader-cli: Загружаем файлы с Python и стилем

27 июл 2025

Репозиторий давно не обновлялся

Последнее обновление было 2 года назад.

467
30
9
2 года

Кто из нас не сталкивался с необходимостью скачать файл через терминал? Казалось бы, что может быть проще — wget или curl всегда под рукой. Но когда нужно контролировать процесс, видеть прогресс или кастомизировать вывод, стандартные инструменты часто оказываются слишком ограниченными. Именно эту проблему решает downloader-cli — простая, но очень удобная утилита на Python.

Что это за инструмент?

Downloader-cli — это консольный загрузчик файлов с открытым исходным кодом, написанный на Python. Главная его фишка — это красивый, настраиваемый прогресс-бар, который превращает скучный процесс загрузки в нечто визуально приятное.

Пример работы downloader-cli

Проект собрал уже более 350 звезд на GitHub и активно поддерживается сообществом. И не зря — он действительно делает загрузку файлов удобнее.

Ключевые возможности

  1. Кастомизируемый прогресс-бар — можно менять символы, цвета и границы. Хотите вместо стандартных блоков использовать решетки? Легко!

    Реклама
    dw https://example.com/file.zip --done "#" --left " "
    

    Пример кастомизированного прогресс-бара

  2. Возобновление загрузок — если соединение прервалось, можно продолжить с места остановки одной опцией -c.

  3. Пакетная загрузка — поддерживается загрузка нескольких файлов из списка (по одному URL на строку).

  4. Минимальные зависимости — требуется только urllib3, что делает установку максимально простой.

  5. Кроссплатформенность — работает везде, где есть Python, плюс есть готовые пакеты для Arch Linux, Gentoo и Conda.

Как установить

Самый простой способ — через pip:

pip install downloader-cli

Для пользователей Arch Linux есть пакет в AUR:

yay -S downloader-cli

Примеры использования

Самая простая команда для загрузки файла:

dw https://example.com/large-file.iso

Если нужно перезаписать существующий файл:

dw -f https://example.com/file.zip

Для интеграции в свои Python-скрипты:

from downloader_cli.download import Download
Download("https://example.com/file.zip").download()

Когда особенно пригодится?

  • Автоматизация скриптов — когда нужно наглядно показывать прогресс загрузки
  • Работа с медленными соединениями — возможность возобновить загрузку спасет нервы
  • Серверное администрирование — легковесная альтернатива wget/curl с лучшей визуализацией
  • Обучение Python — отличный пример хорошо структурированного CLI-приложения

Под капотом

Проект написан на чистом Python с использованием:

  • urllib3 для работы с HTTP
  • argparse для обработки аргументов командной строки
  • Встроенных возможностей Python для работы с потоками

Архитектура проста и понятна — это делает проект отличной основой для изучения принципов работы CLI-утилит.

Downloader-cli — это тот редкий случай, когда простая идея реализована почти идеально. Если вы:

  • Часто работаете в терминале
  • Цените визуальную обратную связь
  • Хотите удобный инструмент для автоматизации загрузок

— обязательно попробуйте эту утилиту. Она может стать вашим любимым способом загружать файлы из командной строки.

А если вы Python-разработчик, то исходный код проекта — отличный пример того, как делать CLI-приложения правильно. Кстати, проект принимает пулл-реквесты, так что можно не только использовать, но и улучшать его!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.