Python 具有多个TQM进度条的多处理

Python 具有多个TQM进度条的多处理,python,csv,python-multiprocessing,tqdm,Python,Csv,Python Multiprocessing,Tqdm,我有多个大规模的csv文件,我正在并行处理。我希望每个文件都有一个进度条 然而,当我被显示为5条时,只有最后一条正在被更新——似乎所有进程都在一次更新。因为我无法将整个csv文件读入内存,所以我使用filesize来显示进度 inputArg是以数字结尾的文件夹路径 def worker(inputArg): with open(inputArg + '/data.csv') as csvfile: size = os.path.getsize(i

我有多个大规模的csv文件,我正在并行处理。我希望每个文件都有一个进度条

然而,当我被显示为5条时,只有最后一条正在被更新——似乎所有进程都在一次更新。因为我无法将整个csv文件读入内存,所以我使用filesize来显示进度

inputArg是以数字结尾的文件夹路径

def worker(inputArg):
        with open(inputArg + '/data.csv') as csvfile:
                size = os.path.getsize(inputArg + '/data.csv')
                text = "progresser #{}".format(inputArg[-1])
                pb = tqdm(total=size, unit="B", unit_scale=True, desc=text, position=int(inputArg[-1]))
                reader = csv.reader(csvfile, delimiter=',')
                for row in reader:
                        pb.update(len(row))
                        session.execute(*INSERT QUERY*)

    def scheduler(inputData):
            p = multiprocessing.Pool(multiprocessing.cpu_count()+1)
            p.map(worker, inputData)
            p.close()
            p.join()

    if __name__ == '__main__':
            folders = glob.glob('FILEPATH/*')
            print ('--------------------Insert started---------------')
            scheduler(folders)
            print('---------------------All Done---------------------')
任何暗示都将不胜感激

编辑:我确实检查了另一个答案,但我明确地说我想要多个进度条,而这个答案只给你一个。因此,这不是重复

EDIT2:这里是@bouteillebleu的样子,我确实得到了我的酒吧,但只有最后一个因为某种原因被更新了。

尝试使用最新版本的
tqdm
v4.18.0
或更高版本,请参阅)

的可能副本是否有任何帮助?看起来您可以选择每个条显示的位置,这将使您能够看到每个已处理CSV的不同结果。@bouteillebleu感谢您的评论!我添加了一张图片——因为我已经在使用position参数,所以得到了不同的条。只是更新似乎有问题?我使用的是TQM v4.26,但我仍然面临问题中描述的问题(只有最后一次进度条更新似乎由所有进程完成)。我很惊讶这个答案被标记为正确@elexhobby您的环境可能不支持嵌套条-请参阅