У меня есть скрипт python, который запускает URL-адрес, который является загружаемым файлом. Есть ли способ использовать командную строку python для отображения прогресса загрузки, поскольку он противостоит запуску браузера?Python progress bar и загрузки
ответ
Обновлено для образца URL:
Я только что написал супер простой (немного Hacky) подход к этому для соскабливания PDFs от определенного сайта. Обратите внимание, это работает корректно только в системах на основе UNIX (Linux, Mac OS), как PowerShell не обрабатывает «\ г»
link = "http://indy/abcde1245"
file_name = "download.data"
with open(file_name, "wb") as f:
print "Downloading %s" % file_name
response = requests.get(link, stream=True)
total_length = response.headers.get('content-length')
if total_length is None: # no content length header
f.write(response.content)
else:
dl = 0
total_length = int(total_length)
for data in response.iter_content(chunk_size=4096):
dl += len(data)
f.write(data)
done = int(50 * dl/total_length)
sys.stdout.write("\r[%s%s]" % ('=' * done, ' ' * (50-done)))
sys.stdout.flush()
Он использует requests library так что вам необходимо установить, что. Это выводит что-то вроде следующего в консоли:
>Downloading download.data
>[============= ]
строка прогресса 52 символов шириной в скрипте (2 символа являются просто []
так 50 символов прогресса). Каждый =
представляет 2% загрузки.
Как я могу применить это к этому URL-адресу http: // indy/abcde1245 – user1607549
@ user1607549 обновлено для использования с вашей ссылкой на образец – Endophage
запросов нигде не определено – user1607549
Вы можете использовать «clint» пакета (написанные одним и тем же автором, как «запросы»), чтобы добавить простой прогресс бар для вашей загрузки, как это:
from clint.textui import progress
r = requests.get(url, stream=True)
path = '/some/path/for/file.txt'
with open(path, 'wb') as f:
total_length = int(r.headers.get('content-length'))
for chunk in progress.bar(r.iter_content(chunk_size=1024), expected_size=(total_length/1024) + 1):
if chunk:
f.write(chunk)
f.flush()
, который даст вам динамический выход, который будет выглядеть так:
[################################] 5210/5210 - 00:00:01
Он должен работать и на нескольких платформах! Вы нажмете can also change бар на точки или счетчик с .dots и .mill вместо .bar.
Наслаждайтесь!
было бы здорово, если бы это могло быть частью стандартной библиотеки python. –
что такое 'путь'? –
Путь - это имя файла, который вы хотите сохранить. – tshrinivasan
Я думаю, вы также можете использовать click, и он также имеет хорошую библиотеку для индикатора выполнения.
import click
with click.progressbar(length=total_size, label='Downloading files') as bar:
for file in files:
download(file)
bar.update(file.size)
Наслаждайтесь!
click также является частью стандартной библиотеки python3.6, поэтому нет необходимости в дополнительной установке – MortenB
@MortenB Это так? Я получаю 'ModuleNotFoundError: нет модуля с именем 'click'' на 3.6.1. – nyuszika7h
Вы можете скачивать файлы, как они есть здесь ->Stream a Download.
Также вы можете Stream Uploads.
Наиболее важным потоковый запрос выполняется, если вы пытаетесь получить доступ к response.content только с 2 линиями
for line in r.iter_lines():
if line:
print(line)
Я удивлен, что tqdm не было предложено!
- 1. Python progress bar и uploads
- 2. Python progress bar GUI
- 3. Python Progress Bar
- 4. Progress Bar для загрузки ftp
- 5. Progress Bar и gevent
- 6. Ajax form progress progress bar
- 7. Python PyQt Bar Progress Busy
- 8. AsyncTask и Progress Bar
- 9. CodeIgniter и Progress bar
- 10. Progress Bar через Python CGI
- 11. Python PySide и Progress Bar Резьбонарезного
- 12. php и jquery progress bar
- 13. Make progress bar display Статус загрузки:
- 14. jqueryui progress bar до полной загрузки страницы
- 15. VB reset progress bar value после загрузки
- 16. Show Progress Bar для загрузки изображения
- 17. JQuery Progress Bar (Canvas время загрузки)
- 18. Progress Bar - gif для загрузки файла php
- 19. libcurl console progress bar для загрузки файла
- 20. httplib2 загрузить progress bar в python
- 21. UIWebView with Progress Bar
- 22. php progress bar?
- 23. wxpython filecopy progress bar
- 24. Progress-bar (Video Preloader)
- 25. jQuery Progress Bar Loop
- 26. ttk progress bar freezing
- 27. Загрузить файл - Progress Bar?
- 28. Java - Unzip и Progress Bar
- 29. «Загрузка» popup/progress bar
- 30. Progress Bar в C#
Если мой ответ решил вашу проблему, отметьте его как принятый (щелкните небольшую контурную марку). – Endophage