具有多个 tqdm 进度条的多处理
Multiprocessing with multiple tqdm progress bars
我有多个正在并行处理的大量 csv 文件。我想要 每个 文件的进度条。
然而,虽然我显示了 5 个栏,但只有最后一个正在更新 - 似乎所有进程同时更新。由于我无法将整个 csv 文件读入内存,因此我使用文件大小来显示进度。
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 的样子,我确实得到了我的酒吧,但由于某种原因只有最后一个更新了。
Current progress bars
尝试使用最新版本的 tqdm
(v4.18.0
或更高版本,请参阅 https://github.com/tqdm/tqdm/releases)
我有多个正在并行处理的大量 csv 文件。我想要 每个 文件的进度条。
然而,虽然我显示了 5 个栏,但只有最后一个正在更新 - 似乎所有进程同时更新。由于我无法将整个 csv 文件读入内存,因此我使用文件大小来显示进度。
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 的样子,我确实得到了我的酒吧,但由于某种原因只有最后一个更新了。 Current progress bars
尝试使用最新版本的 tqdm
(v4.18.0
或更高版本,请参阅 https://github.com/tqdm/tqdm/releases)