python tkinter 显示文件读取进度(多个文件)

在网上搜了下 试着添加 读文件python tkinter,如何让进度条根据我第二张图片的(2)部分根据当前读取文件进度files[i]显示进度条, 如何把1部分嵌套进我的2 求助!

    def show():
        for i in range(0,len(files)):       
            progressbarOne['value'] = i + 1 # 每次更新加1       
            root.update() # 更新画面
            time.sleep(0.05)
    root = tkinter.Tk()
    root.title('遍历文件夹') # 设置窗口标题
    root.geometry('150x120')
    progressbarOne = tkinter.ttk.Progressbar(root)
    progressbarOne.pack(pady=20)    
    progressbarOne['maximum'] = len(files) # 进度值最大值   
    progressbarOne['value'] = 0 # 进度值初始值    
    button = tkinter.Button(root, text='File Loading', command=show)
    button.pack(pady=5)
    root.mainloop()#消息循环    
        
    for i in range(0,len(files)):
          
        tracepath = os.path.join(tracedir,files[i])
        print(tracepath)
        print(files[i])
        files_n = len(files) # process bar cal
        data = pd.read_csv(tracepath,index_col= False) # 对每一份文件执行的如下操作
        data['Filename'] = files[i]
        data = data.merge(configP[['Par','AnalyClass']],on ='Par', how='left') 
        data = data.merge(configS[['Par','Step','AnalyClass']], on=['Par','Step'],how='left') # AnalyClass_x, AnalyClass_y 
        data['Class'] = np.where(data['AnalyClass_x'].notnull(), data['AnalyClass_x'], data['AnalyClass_y'])# 

image.png

阅读 3.6k
1 个回答

在调用 progress_bar = ttk.Progressbar() 之后,没有调用 progress_barplacegrid 等方法将其放到画布上,应该加上这个就好了。
不过看你的需求,可能不需要用到这种 GUI 形式的进度条,建议上终端显示的进度条,我一般用 tqdm,。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏