我正在嘗試創建一個GUI,用戶在該按鈕上點擊一個按鈕,應用程序從互聯網下載文件。我想要一個進度條顯示文件下載完成的時間。爲了實現這一點,我已經實現了一個線程來運行進度條的功能,當下載按鈕被點擊。下面是我使用的代碼:下載進度條無法正常工作,Python 3
def progthread():
threading.Thread(target=download).start()
def download():
blocknum = 0
blocksize = 0
url = "https://www.python.org/static/img/python-logo.png"
filename = "C:\My Python Apps\MyFile.png"
response = requests.get(url, stream=True)
total_length = response.headers.get('content-length')
with open(filename, "wb") as f:
for data in response.iter_content(chunk_size=10000):
f.write(data)
percent = int(blocknum * blocksize/int(total_length))
progress['value'] = percent
當我運行應用程序,它會下載文件,並沒有錯誤上來。但進度條並沒有做任何事情。我嘗試使用progress.update()
和progress.update_idletask()
,但進度條仍然不起作用。
如何獲取進度條以顯示文件的下載進度?
您還沒有在循環中爲blocknum和blocksize賦值,所以它們始終保持爲0. –