Python-每次更新都会获得progressbar的新打印

Python-每次更新都会获得progressbar的新打印,python,progress-bar,Python,Progress Bar,我对Python完全陌生,希望在将数据从一个数据库复制到另一个数据库(MongoDB)时显示进度条。我试图得到的是一个progressbar,它显示了一个数据库副本到另一个数据库副本的进度(百分比)。副本工作正常,问题在于我的progressbar的更新,每次循环都会重新打印 以下是脚本: X_列表包含字符串 这段代码当然没有经过优化,也没有以正确的方式显示单个progressbar,但请耐心听我说。 预期结果: 当前结果: 当前结果: 提前感谢您提供的任何输入。进度条通过打印“\r”字符

我对Python完全陌生,希望在将数据从一个数据库复制到另一个数据库(MongoDB)时显示进度条。我试图得到的是一个progressbar,它显示了一个数据库副本到另一个数据库副本的进度(百分比)。副本工作正常,问题在于我的progressbar的更新,每次循环都会重新打印

以下是脚本:

X_列表包含字符串

这段代码当然没有经过优化,也没有以正确的方式显示单个progressbar,但请耐心听我说。

预期结果:

当前结果:

当前结果:


提前感谢您提供的任何输入。

进度条通过打印“\r”字符(回车符)将光标移回行首来工作。只要光标停留在当前行上,此操作就可以工作。这里可能发生的是,您正在将一个新行打印到代码中其他地方的stderr。这实质上意味着回车无效。或者您使用的终端不支持回车(某些IDE显然是这样)。

请看一看。我个人认为这是最好的进度条。除此之外,任何
print()。也有可能您的终端不支持控制符号。谢谢。事实上,我尝试使用TQM获得类似的结果。我将把它添加到我的帖子中。终端就是问题所在。似乎这只是一个终端问题,谢谢你的快速回答。我在控制台中尝试了examples.py,也遇到了同样的问题。我一直在寻找我的代码中的错误,我的IDE的插件兼容性甚至没有出现在我的脑海中
    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()