我有一個python腳本,啓動一個URL是一個可下載的文件。有沒有辦法讓python使用命令行顯示下載進度,反對啓動瀏覽器?Python的進度條和下載
回答
更新爲您的樣品網址:
我剛寫了一個超級簡單(略哈克)的辦法處理這一刮PDF文件關閉某個網站。請注意,它只是正常工作在基於UNIX系統(Linux,Mac OS)的PowerShell不會處理「\ r」
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%。
我該如何appliy到這個網址http:// indy/abcde1245 – user1607549 2013-03-26 18:58:08
@ user1607549已更新用於您的示例鏈接 – Endophage 2013-03-26 19:02:51
請求沒有被定義在任何地方 – user1607549 2013-03-26 19:12:43
您可以使用「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標準庫的一部分,那將會很棒。 – 2014-08-16 08:16:31
'路徑'是什麼? – 2015-02-01 15:19:20
path是要保存文件的文件名。 – tshrinivasan 2015-12-06 16:53:44
我認爲你也可以使用click,它也有一個很好的進度條庫。
import click
with click.progressbar(length=total_size, label='Downloading files') as bar:
for file in files:
download(file)
bar.update(file.size)
Enjoy!
點擊也是python3.6標準庫的一部分,所以不需要額外安裝 – MortenB 2017-06-21 10:17:14
@MortenB是不是?我得到了'ModuleNotFoundError:3.6.1上沒有名爲'click''的模塊。 – nyuszika7h 2017-08-12 09:29:53
您可以在此下載流式下載 - >Stream a Download。您也可以Stream Uploads。
最重要的數據流,除非你試圖只用2線
for line in r.iter_lines():
if line:
print(line)
我很驚訝,tqdm尚未提出訪問response.content 的要求完成了!
- 1. 下載進度條
- 2. 正在下載進度條urllib2 python
- 3. Django/Python用進度條下載文件
- 4. HttpWebRequest的下載文件和進度條
- 5. 下載時的進度條
- 6. 進度條下載圖像
- 7. Firebase下載進度條
- 8. 顯示下載進度條
- 9. 旋轉進度條下載
- 10. 如何使用Python進度條進行下載?
- 11. 下拉框和進度條
- 12. 的Python:添加一個進度條的下載
- 13. 下載pdf流的進度條
- 14. 下載圖片時的進度條
- 15. 目標C:下載時的進度條
- 16. 用於ftp下載的進度條
- 17. 如何給下載的進度條?
- 18. NSURLSession下載任務 - 進度條問題
- 19. 使用urlopen下載進度條
- 20. 進度條下載數據SQLITE javascript
- 21. 使進度條顯示下載狀態
- 22. 多個下載進度條目標c
- 23. 亞馬遜s3 ios下載進度條
- 24. 下載圖片進度條,PHP,Javascript,HTML
- 25. ftp下載進度條不填充c#
- 26. 下載服務器進度條pecl
- 27. 下載期間黑莓進度條
- 28. 用進度條下載多個視頻
- 29. 下載進度條RSS提要
- 30. 進度條(下載)使用HTML 5
如果我的答案解決了您的問題,請將其標記爲已接受(點擊小勾號大綱)。 – Endophage 2013-08-12 01:49:24