位置: 编程技术 - 正文

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年
  • 商品报废了还用退货吗
  • 金蝶专业版二级科目设置
  • 当月开票当月付款分录
  • 劳务派遣差额计税公式
  • 增值税专用发票可以开电子发票吗
  • 企业赠送礼品是否涉税
  • 物业电费加价如何举报
  • 货代行业红字冲正发票怎么做凭证
  • 别人垫付的医药费,可以报销吗
  • 营业执照缴纳印花税贴花怎么缴纳
  • 外购材料运输费怎么入账
  • 个体户交地税
  • 资金账簿印花税最新政策2023
  • 小规模纳税人季度多少免税
  • 企业购买商品
  • 全国失信人员信息
  • 跨区经营的税务政策
  • 企业在外地的房产怎么办
  • 预缴税金跨区域涉税在哪查询
  • 如何准确区分不动产租赁和仓储服务?
  • 贸易型企业怎么做账
  • 如何使用u盘安装软件
  • php字符串定义的三种方式
  • wordpress邮箱怎么配置
  • 代扣代缴个人所得税怎么申报
  • deepin正式版
  • 存货怎么预估
  • 前端 input
  • ChatGLM-6B:颠覆聊天AI的全新模型
  • Vue3+TypeScript+Vite如何使用require动态引入类似于图片等静态资源
  • windowsserver2016激活密钥
  • 反写必须15号之前吗
  • 接受非货币性资产投资会计处理
  • 企业接受捐赠怎么入账
  • 先息后本贷款利息计算器
  • 购买税盘怎么减免申报
  • linux 升级软件
  • 数据库用户名称
  • mysql查询性能分析
  • 报销流程怎么走
  • 租赁物品损坏赔偿金额标准
  • 固定资产减值准备借贷方向
  • 企业收到投资者投入资金
  • 什么是税后利息支出
  • 园林绿化企业属于什么行业
  • 应收分保未到期责任准备金是什么科目
  • 购进商品发生溢余
  • 养老保险如何记算
  • 交纳增值税的账务处理PPT
  • 财政拨款公司的资金来源
  • 结转后还可以改凭证吗
  • 发票超过密码区一点点
  • 工程施工间接费用明细
  • 无形资产出资入股的会计处理
  • 营业外支出有哪些费用
  • sqlserver数据库迁移至mysql
  • ubuntu下mysql的常用命令
  • 电脑cortana小娜有用吗
  • 电脑windows8怎么样
  • linux config
  • html5画布五角星
  • Android之framework修改底部导航栏NavigationBar动态显示和隐藏
  • android查询数据库
  • json基本语法
  • 安卓无法更新软件
  • node基础知识
  • 如何保养铜香炉
  • 如何将python中的列表与数据对齐
  • 安卓手机怎么自定义
  • 税务如何查饭店信息
  • 银行缴纳印花税存在问题和建议
  • 小孩一卡通丢了去哪里补办,需要什么证件
  • 上海金山国税局局长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设