以下是一个简单的Python Tkinter程序,用于下载文件并显示下载进度和百分比:
import tkinter as tk
import requests
class DownloadApp:
def __init__(self, master):
self.master = master
self.master.title("Download App")
# 创建下载进度条
self.progressbar = tk.ttk.Progressbar(self.master, orient="horizontal", length=200, mode="determinate")
self.progressbar.pack(pady=10)
# 创建百分比标签
self.percent_label = tk.Label(self.master, text="0%")
self.percent_label.pack()
# 创建下载按钮
self.download_button = tk.Button(self.master, text="Download", command=self.download)
self.download_button.pack(pady=10)
def download(self):
url = "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US"
response = requests.get(url, stream=True)
# 获取文件大小
file_size = int(response.headers.get("Content-Length", 0))
# 创建文件对象
file = open("firefox.tar.bz2", "wb")
# 下载文件并更新进度条和百分比标签
downloaded_size = 0
for data in response.iter_content(chunk_size=4096):
downloaded_size += len(data)
file.write(data)
progress = int(downloaded_size / file_size * 100)
self.progressbar["value"] = progress
self.percent_label.config(text=f"{progress}%")
self.master.update()
# 关闭文件对象和请求对象
file.close()
response.close()
if __name__ == "__main__":
root = tk.Tk()
app = DownloadApp(root)
root.mainloop()
在这个程序中,我们使用了Python的requests库来下载文件,并使用Tkinter的Progressbar和Label来显示下载进度和百分比。下载过程中,我们使用了iter_content方法来逐步读取文件内容,并在每个数据块下载完成后更新进度条和百分比标签。最后,我们关闭文件对象和请求对象,以确保资源得到释放。文章源自爱尚资源教程网-https://www.23jcw.net/6566.html 文章源自爱尚资源教程网-https://www.23jcw.net/6566.html
相关文章
版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!
