位置: 编程技术 - 正文

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

  • 税控盘减免税款年末如何结转
  • 没有销售是什么意思
  • 购进货物用于在建工程要交增值税吗
  • 税控盘服务费去年忘记抵了今年可以抵扣吗
  • 生产车间领用低值易耗品
  • 房产未竣工如何缴纳房产税
  • 小企业销售费用多少算高
  • 工程预收账款的会计分录
  • 购买的员工福利需要缴纳印花税
  • 分公司收到的总部拨款会计如何处理
  • 全额拨款事业单位工资都一样吗
  • 个人企业属于什么部门管理
  • 手工开具发票
  • 所得税为负值是什么意思
  • 前期工程费如何分摊
  • 应交增值税最后到哪了
  • 清包工如何纳税
  • 现金折扣若缴纳增值税,怎么进行会计处理?
  • 理发店财务分析报告
  • 建筑业调试费进什么科目?
  • 征信证明怎么开啊
  • 2020年餐饮行业免税政策
  • 鸿蒙智能充电模式怎么用
  • 自定义输入是什么
  • 开具成品油发票规格型号有哪些要求
  • 代理进口货物账务怎么处理
  • 公司账户收款退回怎么退
  • 公司收到的应收股利需要分配利润吗
  • PHP:preg_match()的用法_PCRE正则函数
  • url是什么软件
  • 公司为员工投保意外险,意外险赔付给谁
  • 客户要回扣
  • 租赁收入确认时点
  • adas数据集
  • echarts series name
  • javaweb项目简介
  • 从univ.txt文件中去掉机构名称
  • 如何解决php乱码
  • 公司间代收款需要开票吗
  • 燃气管道安装费和暖气管道安装费两个的欠条怎么写
  • 增值税申报表中销售额
  • 出口免税免的是哪部分的税
  • 向境外股东分配股息预提所得税
  • 所有小规模都能开专票吗
  • 电子发票的缺点
  • sql server 2008有什么用
  • 会计新准则2020
  • 非金融企业之间的借款合同要交印花税吗
  • 民办幼儿园账务月末结转
  • 稳岗返还资金最新账务处理
  • 固定资产已提完折旧,但仍在使用,需要定期清理吗?
  • 未使用和未投入使用
  • 结转损益利息收入贷方红字什么意思
  • 国家也通过国有企业利用自己的财政资金
  • 商业企业会计制度变迁论文
  • 在centos上安装ftp服务应运行指令
  • winxp搜索文件内容搜不出来
  • ubuntu安装指南
  • win8在哪里看安装的所有程序
  • win10网卡驱动不正常连不上网怎么办
  • 搜狗浏览器2019版本
  • linux中使用less命令分屏查看
  • perl 调用perl
  • 遍历目录文件
  • jquery源码分析笔记
  • 菜鸟学安卓逆向
  • linux进程运行的两种方式
  • unity灯光烘培
  • python 条件变量
  • 安卓自动登录应用程序
  • 深入理解新发展理念
  • jquery获取cookie值的方法
  • node express 路由
  • 重庆地方税务局刘飞虎
  • 代理记账公司自查自纠情况报告范文
  • 申请小规模纳税人公司需要多久
  • 拒绝税务机关检查
  • 动物大联盟是国内品牌吗
  • 烟台税务app
  • 银行理财收入如何记账
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设