gpt4 book ai didi

Python - 每次更新都会打印新的进度条

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:41 24 4
gpt4 key购买 nike

我对 Python 完全陌生,希望在将数据从一个数据库复制到另一个数据库(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

预先感谢您提供的任何意见。

最佳答案

进度条通过打印“\r”字符(回车符)来工作,该字符将光标移回行首。只要光标停留在当前行,此操作就有效。这里可能发生的情况是您在代码中的其他位置向 stderr 打印换行符。这本质上意味着回车无效。或者您可能使用的终端不支持回车(显然有些 IDE)。

关于Python - 每次更新都会打印新的进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47650730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com