以下是一个简单的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
相关文章
版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!