python下载文件并显示下载进度和百分比

Python评论543阅读模式

以下是一个简单的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

相关文章
版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!
  • 温馨提示:如遇到资源下载不了,或者文章没有解决你的问题的,可以联系我们帮你处理!!!
  • 转载请务必保留本文链接:https://www.23jcw.net/6566.html

发表评论