Python 具有多个TQM进度条的多处理
我有多个大规模的csv文件,我正在并行处理。我希望每个文件都有一个进度条 然而,当我被显示为5条时,只有最后一条正在被更新——似乎所有进程都在一次更新。因为我无法将整个csv文件读入内存,所以我使用filesize来显示进度 inputArg是以数字结尾的文件夹路径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
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您的环境可能不支持嵌套条-请参阅