位置: 编程技术 - 正文

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中的作用)

  • 哪些占用土地的行为不征收耕地占用税?
  • 增值税纳税义务发生时间的规定
  • 交增值税及附加税怎么做账
  • 天猫店铺个人可以开吗
  • 抵扣旅客运输增值税报表怎么填
  • 预付账款需要纳税申报吗
  • 电信充值调账什么意思
  • 企业所得税返还计入什么科目
  • 展板制作费属于什么服务
  • 税控设备维护费会计分录
  • 转登记为小规模纳税人未抵扣的进项税额
  • 发票不附销货清单可以吗
  • 交车辆购置税需要开车去吗
  • 营改增试点纳税人提供有形动产租赁服务,税率为
  • 结转销项税额至未交增值税的结转系数
  • 企业所得税预缴可以不交吗
  • 小规模增值税多少个点
  • 销售开发后的产品
  • 以后年度继续扣除广告宣传费,要怎么写分录?
  • 房地产预收账款结转到主营业务收入
  • 单位缴交的社保和医保还要交其他费用吗
  • 股东与公司之间是什么关系
  • 转让长期股权投资怎么算
  • 应交税费的明细账怎么手工登记
  • 公司年度财务报告怎么写
  • 处置报废车辆如何缴纳增值税
  • 未完工产品成本计算公式
  • 民非提供服务收到的现金怎么算
  • 财政补贴会计入养老金一起发放吗
  • 怎么安装win7系统步骤
  • 计提本月工资是上月工资吗
  • php 字符串函数
  • 计提房产税会计分录怎么做账
  • php关闭报错
  • 机器学习论文源代码浅读:Autoformer
  • vue框架总结
  • vue的ref怎么用
  • 净化器 ccm
  • vscode主题插件护眼
  • 退税没有退的部分怎么做账
  • 弃置费用的现值计入固定资产
  • 物业费的税可以抵扣吗
  • 增值税留抵扣额
  • 信用卡的还款方式怎么查
  • 如何计算保费合同未规定加成比例
  • 交通运输服务包括程租
  • 购进固定资产的账务处理
  • 公共电话亭的话费怎么算
  • 长期持股的最好方法
  • 合并财务报表为什么要抵消子公司所有者权益
  • 原始股卖出需要缴税吗
  • 航天信息全额抵扣分录
  • 专门从事研发的公司
  • 产品生产完工入库
  • 进项和销项税月底有余额吗
  • 税控盘的主要功能
  • 离岸银行账户开户
  • 物业管理企业应设置代管基金和代收款项账户
  • 10种Java开发者编写SQL语句时常见错误
  • sql server数据库怎么导出
  • 一些有用的sql语句是什么
  • ssms连接mysql
  • java异常后面的语句会运行吗
  • 微软更新kb4474419
  • xp电脑搜索文件为什么搜索不出来
  • linux网络编程视频教程
  • 苹果mac电脑不会关机
  • qclean.exe - qclean是什么进程 有什么用
  • 如何修改注册表值
  • centos7 修复
  • linux可视化界面怎么输入代码
  • python爬虫教程
  • 请问在javascript程序中
  • nodejs requirejs
  • android的基本概念
  • 浅析我国国防现状
  • python安装后怎么用
  • 国税局招录条件
  • 浙江税务局网络发票页无法打字
  • 个人所得税app密码给别人有风险吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设