位置: 编程技术 - 正文

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

  • 自己房子出租发布信息
  • 税收筹划的内容主要包括
  • 一般计税方法适用于500万
  • 小规模纳税人免税会计分录
  • 会计科目长期待摊费用跟累计折旧分别是什么意思
  • 公积金贷款金额少怎么办
  • 公司帮员工全额缴纳五险一金
  • 无租房合同可以取住房公积金吗
  • 利息费用和利息支出的区别计算公式
  • 普票销项负数发票
  • 固定资产无法使用不能带来经济利益是否需计提租金
  • 其他综合收益税后净额影响净利润吗
  • 高新技术企业清算所得税率是多少
  • 短期借款的利息会计分录怎么写
  • 不付供应商尾款了怎么清账
  • 行邮税的税率档次
  • 个体工商户餐饮业税率是多少
  • 公司租房可以入公积金吗
  • 拿到省级奖有什么用
  • 一般纳税人既有批发零售又有不动产租赁
  • 资本公积转增资本个人股东是否纳税
  • 期间费用燃油费计入哪个项目?
  • 收到银行利息会计分录怎么做账
  • 增值税加计扣除政策
  • 扣缴义务人申报和综合所得年度自行申报
  • 企业预付保险费怎么做账
  • Laravel 5.4中migrate报错: Specified key was too long error的解决
  • php中数组的概念
  • jQuery+Ajax+PHP“喜欢”评级功能实现代码
  • 松木山在哪
  • Win10 Build 19044.1379/19043.1379更新补丁KB5007253预览版推送
  • kscreensaverapp.exe是什么
  • .msc是什么意思
  • 选择简易计税方法计税的有
  • 股票印花税和佣金的关系
  • 进项税额转出的所有会计分录
  • thinkphp wherein
  • pdf优化器在哪里
  • 应付利息如何结转
  • 辞职单位补偿标准
  • 软件服务费可以全额抵扣吗?
  • mysql两张表差异数据
  • 开具定额发票应如何做账?
  • 贷方账户日累计金额超限什么意思
  • 结转本年利润按什么算
  • 广告制作需要交文化事业建设税
  • 装饰公司收到的礼品
  • sql server 2008教程
  • sqlserver存储过程返回多个结果集
  • os x10.11el capitan公测版beta5更新了什么?os x10.11el capitan公测版beta5发布下载
  • bios开机密码怎么关闭
  • solaris删除文件夹命令
  • windowxp音频驱动
  • 电脑游戏战争策略游戏
  • jsp环境变量配置的步骤
  • window8所有程序在哪
  • linux终端怎么用
  • win8.1技巧
  • linuxat命令的用法
  • js闭包的理解详解
  • node.js axios
  • cocos2dx 不规则按钮的实现
  • jquery ztree api
  • android集成chromiumview
  • python标准模板库
  • unity3d需要什么语言
  • Node.js中的construct构造函数
  • angular 创建项目
  • unauthorizedAccessException
  • javascript的
  • js定时器有哪些,区别及用法
  • android 监听事件
  • webgl fbo
  • js会话
  • 交通运输业的税率9%和13%
  • 海关跟税务关系的区别
  • 深圳前海地铁站几号线
  • 乡镇调研报告最佳范文
  • 福州台江区怎么去
  • 税务稽查局工资高吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设