0
병렬 처리중인 여러 개의 대량 csv 파일이 있습니다. 에 대한 진행률 표시 줄을 각각 파일로 만들고 싶습니다.다중 tqdm 진행률 표시 막대를 사용하는 다중 처리
그러나 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---------------------')
어떤 힌트라도 환영합니다!
EDIT : 다른 답변을 확인했지만 명시 적으로 여러 진행률 표시 줄이 필요하며 그 대답은 오직 하나만 제공합니다. 그러므로, 이것은 중복이 아닙니다.
EDIT2 : @bouteillebleu처럼 보이지만 바가 생기지 만 어떤 이유로 마지막 바가 업데이트됩니다. Current progress bars
가능한 복제 (https://github.com/tqdm/tqdm/releases를 참조
v4.18.0
이상)tqdm
의 최신 버전을 사용해보십시오 [파이썬에서 여러 과정을 통해 tqdm 사용하는 방법?] (https://stackoverflow.com/questions/ 43064054/how-to-use-tqdm-through-multi-process-in-python) – Srawhttps://stackoverflow.com/questions/45742888/tqdm-using-multiple-bars 어떤 도움이됩니까? 각 막대가 표시되는 위치를 선택할 수있는 것처럼 보이므로 처리 된 CSV 각각에 대해 다른 결과를 볼 수 있습니다. – bouteillebleu
@bouteillebleu 코멘트 주셔서 감사합니다! 나는 그림을 추가했습니다. 이미 위치 매개 변수를 사용하고 있기 때문에 다른 막대를 얻었습니다. 그냥 업데이 트가 glitchy 보인다? – Illuminae