내가 파이썬 완전히 새로운 오전과 다른 (MongoDB를) 하나의 데이터베이스에서 데이터를 복사하는 동안 진행률 표시 줄을 표시하고자 진행 막대의 새로운 인쇄 얻기. 내가 얻으려고하는 것은 하나의 진행률 표시 줄에 다른 데이터베이스 복사본의 발전률 (백분율)을 표시하는 것입니다. 복사본이 정상적으로 작동하고 문제는 모든 루프를 다시 인쇄하는 진행률 표시 줄의 업데이트 내에 있습니다. 이파이썬은 - 모든 업데이트를
coll_names = db_in.collection_names()
db_in_size = db_in.command('dbstats')['dataSize']
bar = progressbar.ProgressBar(max_value=db_in_size).start()
for X in X_list:
for coll in coll_names:
db_out_size = db_out.command('dbstats')['dataSize']
bar.update(db_out_size)
db_out[coll].delete_many({'X': X})
data_in = db_in[coll].find({'X': X})
if data_in.count() > 0:
db_out[coll].insert_many(data_in)
bar.finish()
X_list 문자열이 포함되어 여기
는 스크립트입니다.이 코드는 확실히 최적화도 하나의 진행 막대를 표시 할 수 있지만 나 참아주세요 올바른 방법을 포맷되지 않았습니다.
예상 결과 : Single progressbar on one line
현재 결과 : One progressbar print for every iteration
현재 결과 : 당신이 가질 수있는 입력을 사전에 tqdm
감사합니다.
은 (https://pypi.python.org/pypi/tqdm) tqdm] 살펴. 개인적으로 나는 그것이 최고의 진보 바를 찾는다. 그 외에는 루프 본문에있는'print()'호출이 모든 진행률 표시 줄 라이브러리를 망칠 것입니다. 또한 터미널이 단순히 제어 기호를 지원하지 않을 수도 있습니다. – Sergei
고맙습니다. 실제로 tqdm을 사용하여 유사한 결과를 얻으려고 시도했습니다. 나는 그것을 내 게시물에 추가 할 것이다. 터미널이 문제였습니다. 그것은, 빠른 답변 감사 만 터미널 문제처럼 –