鱼C论坛

 找回密码
 立即注册
查看: 10361|回复: 10

python中tqdm模块进度条无法单行打印

[复制链接]
发表于 2019-8-10 03:34:43 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Eagle_li 于 2020-12-28 17:20 编辑

各位大神,有用过python tqdm模块的嘛,为啥我用循环做的进度条不能单行刷新呢,命令行下总是打印很多行,IDLE下也会全打出来。类似于图片这样,求解
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-8-10 08:32:47 | 显示全部楼层
我在 pycharm 运行不会出现这样的问题?
1.gif
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-10 08:59:48 | 显示全部楼层
呃,没用过,不过你可以print("\r")清空一行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-10 15:05:17 From FishC Mobile | 显示全部楼层
zltzlt 发表于 2019-8-10 08:32
我在 pycharm 运行不会出现这样的问题?

你这个是在哪个版本下运行的呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-10 15:11:48 | 显示全部楼层
Eagle_li 发表于 2019-8-10 15:05
你这个是在哪个版本下运行的呀

python374
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-10 15:12:34 | 显示全部楼层
Eagle_li 发表于 2019-8-10 15:05
你这个是在哪个版本下运行的呀

在 cmd 运行也是不能单行输出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-10 16:14:33 From FishC Mobile | 显示全部楼层
zltzlt 发表于 2019-8-10 15:11
python374

我咋没有你那个窗口
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-10 16:16:01 | 显示全部楼层
Eagle_li 发表于 2019-8-10 16:14
我咋没有你那个窗口

我是在 pycharm
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-10 16:20:44 From FishC Mobile | 显示全部楼层
zltzlt 发表于 2019-8-10 16:16
我是在 pycharm

好滴,明白了,我回去也下一个试试,麻烦喽,谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-10 11:50:40 | 显示全部楼层
目前还没有一个特别好的方法支持cmd,建议使用spyder、pycharm或者idle。
cmd刷新在一行:在tqdm中显示设置ascii=True
在spyder中刷新空格也可能是keyboard interruption导致的,解决方法:
try:
    with tqdm(...) as t:
        for i in t:
            ...
except KeyboardInterrupt:
    t.close()
    raise
t.close()
如果有问题,可以参考github的faq相应条目:
https://github.com/tqdm/tqdm#faq-and-known-issues
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-9-10 11:52:36 | 显示全部楼层
Eagle_li 发表于 2019-8-10 16:20
好滴,明白了,我回去也下一个试试,麻烦喽,谢谢!

cmd解决方法:
在tqdm中显示加入ascii=True
spyder keyboard interrupt导致的换行解决方法:
try:
    with tqdm(...) as t:
        for i in t:
            ...
except KeyboardInterrupt:
    t.close()
    raise
t.close()

不同编译器可能是不同的原因导致换行,建议参考github faq相应条目:
https://github.com/tqdm/tqdm#faq-and-known-issues
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-30 02:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表