我基本上是 python 的新手,我正在使用tkinter 和 urllib.request在 python 中構建這個下載程序,它已經完成了,但作為最后一點,我想添加一個進度條來顯示下載了多少文件。我發現我可以使用TQDM添加進度條,但首先我應該得到用戶想要下載的文件的大小,以顯示程序下載了多少,但我什么也沒找到!誰能幫我嗎?我的代碼(順便說一句,如果您知道如何使我的代碼更好,我將不勝感激):from tkinter import *from tkinter import font as tkFontimport randomimport urllib.requestdef printsth(): print("Yay it works! ")def main_menu(): root = Tk() # the top menu num = IntVar() var = IntVar() menu = Menu(root) root.config(menu=menu) submenu = Menu(menu) menu.add_cascade(label="File", menu=submenu) submenu.add_command(label="New project...", command=printsth) submenu.add_command(label="New ", command=printsth) submenu.add_separator() submenu.add_command(label="Exit", command=root.destroy) # the edit menu editmenu = Menu(menu) menu.add_cascade(label="Edit", menu=editmenu) editmenu.add_command(label="Redo...", command=printsth) # the tool bar toolbar = Frame(root, bg="light gray") insert_button = Button(toolbar, text="Insert an image", command=printsth) insert_button.pack(side=LEFT, padx=2, pady=2) print_button = Button(toolbar, text="Print", command=printsth) print_button.pack(side=LEFT, padx=2, pady=2) toolbar.pack(side=TOP, fill=X) # the status bar status_bar = Label(root, text="This is only an example...", bd=1, relief=SUNKEN, anchor=W) status_bar.pack(side=BOTTOM, fill=X) # the download frame def download_image(): global formatname if num.get() == 1: name = random.randrange(1, 10000) else: name = str(name_entry.get()) formatname = str(format_entry.get()) '''if var.get() == 1: operator = str(url_entry.get()) formatname = '.' + operator[-3] + operator[-2] + operator[-1]
1 回答

拉風的咖菲貓
TA貢獻1995條經驗 獲得超2個贊
要獲取大小,請執行以下HEAD
請求:
file_size = int(requests.head('https://www.cs.cmu.edu/~./enron/enron_mail_20150507.tar.gz', headers={'accept-encoding': ''}).headers['Content-Length'])
或GET
請求(可能不正確):
file size = int(requests.get('https://www.cs.cmu.edu/~./enron/enron_mail_20150507.tar.gz').headers['Content-Length'])
添加回答
舉報
0/150
提交
取消