位置: 编程技术 - 正文

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

  • 邮政电信业务差距大吗
  • 5月份企业所得税
  • 企业发生的印花税计入什么科目
  • 资产负债表库存为负数怎么调整
  • 进项税额红字怎么做账
  • 母子公司的关联交易怎么看
  • 其他应收款可以在贷方吗
  • 滴滴电子发票可以看到行程吗
  • 住宿发票要附清单吗
  • 应收票据资产负债表
  • 修理固定资产取得增值税发票能否抵扣?
  • 办理外汇账户开户手续
  • 以前借款没做账现在收回来怎么做账务处理?
  • 分公司亏损总公司账务处理
  • 公司新售楼总部房产税怎样算?
  • 民办非营利组织幼儿园清算时固定资产如何处理
  • 中央财政补贴政策
  • 企业财务负责人和办税人哪个责任大
  • 固定资产差额
  • 单独估价作为固定资产入账的土地为什么不计提折旧
  • 个人银行卡转公账怎么转
  • 餐饮业代金券怎么用
  • 小规模怎么查询
  • win11玩游戏怎样
  • 有限责任公司注册要求
  • 种植业土地租赁计入哪个科目
  • 应收账款的差额计入哪里
  • 情人节海报怎么画简单
  • macos big sur 电池
  • win10右键新建卡死
  • PHP:Memcached::deleteMultiByKey()的用法_Memcached类
  • 从对公账户取现金有什么影响
  • 购买性支出和转移性支出的区别可以归纳为()
  • 发票抵扣联能报销吗
  • 分公司不能享受所得税优惠
  • vscode怎么看错误提示
  • qt+opencv教程
  • vue的简介
  • php入门基础教程
  • 发票 加工费
  • 中国传统节日大概有多少
  • 利润表上期数指的是什么
  • 所得税申报表营业成本包括管理费用吗
  • 跨境电商企业账务如何做账
  • 进项税额转出忘记申报咋办
  • 企业境外投资管理
  • 原始凭证可以直接粘在记账凭证后吗
  • 融资租入的固定资产需要计提折旧吗
  • spring security例子
  • sqlserver根据查询结果创建表
  • 长期股权投资权益法账务处理
  • 计提和实际发放的区别
  • 管理费用月底结转吗
  • 分包工程 税务 账务处理
  • 进口增值税与关税发票哪里打印?
  • 企业叉车折旧年限几年
  • 建造合同收入怎么算
  • 应发和实发工资账务处理
  • 关联方交易舞弊手段
  • 什么叫残保金减免
  • sql行列转换方式
  • solaris ssh offline
  • winxp系统任务栏不见了
  • win7命令提示符怎么打开
  • Win7注册表怎么恢复
  • win10打开文件夹弹出新窗口
  • windows7system登录
  • win10系统如何禁用u盘
  • win10蓝屏故障
  • javascript如何定义变量
  • 用jQuery实现可输入多选下拉组合框实例代码
  • css you
  • jquery技巧
  • Linux进程间通信——使用流套接字
  • jquery 延迟对象
  • js domcontentloaded
  • jquery插件怎么写
  • 天津电子税务局ca证书
  • 昌隆鑫实业集团招聘
  • 陕西省西安市国家民用航天产业基地邮编
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设