位置: 编程技术 - 正文

python控制台中实现进度条功能(python 控制台交互)

编辑:rootadmin

推荐整理分享python控制台中实现进度条功能(python 控制台交互),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python控制台界面,python 控制台交互,python 控制台交互,python在控制台上可以输出吗,python在控制台上可以输出吗,python调用控制台程序,控制台执行python文件,python在控制台上可以输出吗,内容如对您有帮助,希望把文章链接给更多的朋友!

我们大多数人都希望写一些简单的python脚本的同时都想能够在程序运行的过程中实现进度条的功能以便查看程序运行的速度或者进度。今天就和大家探讨这个问题:如何在python控制台中实现进度条功

进度条最主要的问题就是所有字符全部在同一行,而且可以修改。

然而当执行print语句的时候,python会在打印完这个语句的同时在结尾加上'n',也就是换行,这就导致在控制台下一旦被print之后就无法再修改了。所以我们现在的输出就不能再使用print来完成了。

我们要使用的是来自sys库的sys.stdout.write()函数,这个函数会在控制台输出这个字符串的同时不加上任何结尾,这就意味着这个输出还没有完全结束。通过sys.stdout.flush()函数可以把输出暂时打印在控制台中(造成print的假象,我们姑且先叫这个假输出)。那么如果我们使用'r'这个转义字符(回到行首),一切看起来是不是就合理很多了呢?

也就是说:打印字符串的时候,没有加上'n',同时让光标回到行首,再把当前缓冲区显示出来,也就好象是print了一样,但是这时候光标还在原来的位置。

举个例子:

在终端下执行这段代码就会得到简单的进度条效果。

接下来还需要解决两个问题:

一:清空缓冲区

python控制台中实现进度条功能(python 控制台交互)

有些聪明的读者可能发现,当新的字符串比之前短的时候会出现问题,比如下面这段代码:

运行后发现结果跟我们希望的不太一样。

其实是因为已经被flush出去的字符并不会主动清空,所以只有新写入的被修改了。针对这点我目前的解决方案是先输出一波空格把之前的字符串冲掉然后重新写:

二:固定底边输出

有时候我们希望在进度条加载的同时还有一些其他的输出。

我们不妨在刷新掉上一次输出之后输出所需输出的字符串,然后在假输出进度条。

采用如下代码:

就可以完成所需任务了。

怎么样,其实原理还是挺简单的吧?

这里给出一个自己实现的类用来打印进度条:

效果如下:

这样就可以方便的在一些任务中查看程序运行的进度了,比如爬虫、机器学习等并不知道要花多少时间等工作也都可以有形象的时间把握了。

标签: python 控制台交互

本文链接地址:https://www.jiuchutong.com/biancheng/378568.html 转载请保留说明!

上一篇:使用Python发送各种形式的邮件的方法汇总(python发送mq消息)

下一篇:Python list操作用法总结(list在python中的作用)

  • 增值税结转会计科目
  • 上年度暂估的票回不来一直挂帐吗
  • 分公司承担总公司差旅
  • 没进项发票的开销项发票多少税?
  • 报废的机器设备怎么处理
  • 如何确定固定资产的计税基础
  • 公司购买食品如何入账
  • 企业所得税营业收入是含税还是不含税
  • 社保计入主营业务成本
  • 印花税计税基数不包括哪些
  • 小企业会计准则会计科目表
  • 承兑汇票的贴现费用怎么计算
  • 外汇结汇的方法有哪些呢?
  • 存货周转率多少好
  • 营改增后房地产公司税种及税率
  • 伙食支出设立的明细
  • 冲销预付款的会计分录
  • 商业企业取得农产品税收
  • 购进旅客运输服务抵扣会计分录
  • 自用房屋的房产税怎么缴纳
  • 付敏科技有限公司官网
  • 金融资产包括哪三大类及会计科目
  • 收派服务发票需交税吗
  • 个人所得税征收标准2023
  • 转回已确认固定资产减值损失的会计处理怎么做?
  • 企业的商誉会一直存在吗
  • 公司不盈利用交税吗
  • 销售方的现金折扣怎么处理
  • 金税四期查到了怎么办
  • win11怎么提高运行内存
  • centos6.5下载
  • ghost还原问题1823
  • win10玩游戏fps低怎么办
  • 赠品没有收到
  • 爱奇艺以图搜剧不见了
  • 注销公司如何注销
  • vue-html
  • 软件工程毕设题目冷门
  • 公司一直没有收入怎么办
  • 其他应付款的会计科目
  • yolo改进方法
  • 前端实战面试题
  • 人工智能该如何规划软件工程师岗位
  • 帝国cms灵动标签排除上一篇下一篇文章
  • 其他收益在报表列示的项目是
  • 季度所得税怎么算
  • 负债类账户期末余额在借方还是贷方
  • 收到税控系统技术维护费分录
  • 个税申报月份错误怎么更改
  • 公积金发票掉了怎么办
  • 工地扬尘检测仪图片
  • 应收账款资产减值准备可以在所得税前扣除吗
  • 开外管证再省外能办理吗
  • 跨年退货怎么处理账务
  • 暂估出口收入如何计算
  • 房地产开发企业资质管理规定
  • mysql开源社区
  • sql server 不存在或者拒绝访问
  • win8桌面图标不显示
  • windows 10预览版
  • mac系统操作的小技巧
  • 苹果系统怎么更新
  • win10系统最新版用户维护在哪
  • Linux操作系统软链接和硬链接的联系与区别
  • 安装软件时提示无法访问网络位置
  • cad90度角
  • win10系统应用和功能中不能卸载
  • win10开启预览
  • cocos2dx 2.2.2
  • three.js怎么用
  • shell printf 变量
  • 常用的批处理命令
  • Node.js中的全局对象有
  • javascript主要学什么
  • js html css
  • Android本地文件怎么显示歌词
  • python操作命令
  • 四川国税局普通发票查询?
  • 山西房产税征收标准
  • 英国个税税率最高
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设