位置: 编程技术 - 正文

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

  • 网上申报纳税操作视频
  • 住房补贴需要交什么材料
  • 个体工商户生产经营所得税税率表2021
  • 全年没有超过起征点需要汇算吗
  • 固定资产清理净损失怎么算
  • 台账和明细账的区别
  • 小规模能开劳务费吗
  • 车辆后期保养费用
  • 浙江金税三期个税下载
  • 建筑企业如何进行资质申请?
  • 退货没有红字发票怎么办
  • 企业房地产与设施管理指南
  • 税前扣除有标准的项目及标准有哪些?
  • 旅游业是一个怎样的产业
  • 应收账款周转率高好还是低好
  • 公司帮员工买的保险
  • 向关联企业支付管理费用可以税前扣除吗
  • 员工罚款可以从工资里扣吗
  • 建设项目投资中的预备费包括
  • 工会经费的开支必须取得发票么
  • centos 6.5安装教程
  • win10玩游戏提示内存不足无法处理此命令
  • 净资产收益率是什么指标
  • 备用金的会计分类
  • 收入3000以下占比
  • 差额征收单位所需材料
  • linux系统设置中文语言
  • 定额征收怎么交税
  • 增值税专用发票上注明的价款含税吗
  • 阿巴拉契亚国家步道的英文怎么说
  • 税控盘维护费全额抵扣分录怎么做
  • React18的useEffect会执行两次
  • php base64 编码与解码实例代码
  • ajax不刷新页面
  • 怎样退出快手粉丝团 已解决
  • 认识数据库思维导图
  • 微软 gcr
  • html前端技术
  • php 截取字符
  • python魔法方法详解
  • 小规模纳税人什么意思
  • 当月交印花税会计分录
  • c语言fread函数的用法示例
  • 赔绿化损失费的法律规定
  • mongodb安装使用
  • 怎么编制资金平衡表格
  • sql server2000中事务的类型有
  • 个税子女教育扣除申报方式怎么选
  • 金融商品转让一半增值税
  • 用于餐厅的不锈钢餐具
  • 将自产的产品用于非应税项目
  • 发放工资社保的账务处理
  • 专票已认证但又不能抵扣
  • 给员工单独买的西装会计分录
  • 公司购买汽车怎么做账记账凭证
  • 拍卖公司没开发票能退吗
  • mysql 绿色
  • sql数据库批量添加数据
  • win7双系统安装教程
  • win10右键菜单怎么设置
  • debian iso
  • windows8自动更新在哪里关闭
  • centos named
  • win7系统添加打印机没有USB端口选项
  • mac验证码无法显示怎么办
  • win7系统本地连接图标不见了
  • 在linux系统中有一个重要的概念
  • express model
  • 被人遗忘的明星
  • 一起学写字的宣传文案
  • 生成0-100的随机数,直到生成88为止,停止循环
  • js eval
  • js时间戳转日期格式
  • 使用jquery实现的项目
  • 留抵税额如何抵扣
  • 福建失业金领取几个月
  • 跨区域报验和预审的区别
  • 个税系统崩溃
  • 保险机构如何代收车船税
  • 山西省税务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设