位置: 编程技术 - 正文

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

  • 本期收入和本期减除费用
  • 发给员工的福利费可以全部税前抵扣吗
  • 取得虚开普票怎样补增值税
  • 发票号码不一致可以报销吗
  • 开票个人账户的钱怎么查
  • 小规模纳税人办公场地要求
  • 新的企业所得税暂行条例
  • 房地产公司产品无偿提供他人使用 税
  • 租金和押金的税率
  • 没收不还
  • 非独立核算的分公司如何报税
  • 营改增之前
  • 低值易耗品定义出处
  • 企业接收供应商赠品怎么正确的入账?
  • 公司向个人租赁设备
  • 电脑在固定资产中属于哪一类
  • 企业出租自有厂房超经营吗
  • 开错税率怎么报税
  • 民非企业补贴收入要缴纳增值税会计分录怎么写?
  • 在建工程领用外购材料会计分录
  • 职工福利费为什么是14%
  • 节假日加班工资是平时的几倍?
  • 电子公章盖上去怎么文字看不到了
  • 企业借款利息税前扣除怎么算
  • 工会经费由企业和职工共同负担吗
  • 公司集体旅游会计处理
  • 失去胜诉权但又有起诉权是什么意思
  • 网络发票开具
  • 现金股利属于什么所得
  • 手机超过1万元有必要买吗
  • 如何取消开始菜单的程序
  • 基准收益率是
  • set up 和establish的区别
  • 初级会计中应收账款贴现
  • 库存股的会计科目
  • php mysql pdo
  • PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
  • vue组件封装步骤
  • 自动驾驶感知决策控制
  • php微信公众号获取带参二维码
  • 无形资产法
  • 个人独资为什么不能叫公司
  • 小型微利企业税收
  • 织梦如何使用
  • 电脑自学网
  • 员工加班打车费进项可以抵扣吗
  • sqlserver服务请求失败或服务未及时响应
  • 盘盈盘亏的定义
  • 保证金计算器
  • 车辆使用费怎么算
  • 增值税加计抵扣账务处理
  • 出口样品的销售好做吗
  • 出口免抵退和免退有什么区别
  • 厂房和设备折旧计入什么费用
  • 银行询证函快递费谁负担运费
  • 关于园林绿化经济的论文
  • 营业成本包括哪些会计科目
  • 哪些账簿可以跨市登记
  • 设置共享时可使用的权限
  • linux安装.sh
  • 如何清理注册表文件
  • 使用微软
  • 系统安装驱动卡住了
  • linux怎么用root运行命令
  • 怎么看80端口被占用
  • make_sock: could not bind to address 0.0.0.0:443
  • 常见错误类型
  • perl cgi
  • vue做一个table
  • 移动端web开发需要学什么
  • jquery元素选择器有哪些
  • Android ToolBar 的简单封装
  • 济宁税务局王燕利
  • 长途客运手撕票能不能报销
  • 税控盘如何查询上报汇总成功
  • 税务安装软件
  • 停车场收费需要什么手续
  • 包角计算公式推导
  • 物化政的大学有哪些
  • 中国十大经济农村
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设