利用sys打印进度条
在很多常见中,需要对当前处理的进度进行显示,这个时候就需要进度条了,在python中,也有封装好的进度条模块,当然,也可以自己编写一个简单的进度条来帮助理解进度条的实现。
首先,需要理解一个概念,就是python什么时候将数据打印输出到屏幕或者文件中,这个和存储中的buffer有点像,因为内存的速度比较快,而硬盘的速度相对较慢,不可能说整个应用的速度,都是和硬盘的速度相当,这样会影响整个应用的效率,所以,应用会先将数据写入到内存cache中,在内存中有两个阈值,也就是高地水位值:
- 在低水位以下时,系统会定期将cache中的数据,刷到硬盘中,这个时候数据才会存储在硬盘中,低速刷盘
- 当高于低水位,而低于高水位时,系统会以中速,将cache中的数据,刷到硬盘中
- 当cache中的数据,高于高水位时,系统会高速刷盘,直至刷到低水位以下。
在python中,系统刷盘,是通过flush来实现的,对于文件或者系统都是通过该方法来实现。写文件时,也不是有一条数据就往硬盘中写一条,都是有一个buffer_size,当要写入的数据量,达到buffer_size时,才会将数据写入到文件中,也就是硬盘中。
下面来说一下进度条的想法,定义一个100个空格宽的格子,进度条达到时,以=显示,在格子的尾部,显示当前的比例。
import sys,time
def process_view(now,total):
precent = int(now/total*100)
# print(precent)
sys.stdout.write("\r[%s%s%d%%]"%("="*precent," "*(100-precent),precent))
sys.stdout.flush()
time.sleep(0.1)
if __name__ == '__main__':
for i in range(101):
process_view(i,100)
i+=1
实现的效果如下:
[================== 18%]
其中,\r表示清除当前的屏幕输出,在打印本行输出时,先将之前的输出清除;
%s表示字符串占位符,指代后面的字符串
%d表示整型int占位符,指代后面的整型
%%表示百分比占位符,将前面的数字,以百分数的形式显示。
利用sys打印进度条的更多相关文章
- python3如何打印进度条
Python3 中打印进度条(#)信息: 代码: import sys,time for i in range(50): sys.stdout.write("#") sys.std ...
- 打印进度条——(progress bar才是专业的)
# 打印进度条——(progress bar是专业的) import time for i in range(0,101,2): time.sleep(0.1) char_num = i//2 #打印 ...
- python 之 time模块、datetime模块(打印进度条)
6.9 time 模块 方法 含义 备注 time.time() 时间戳 1561013092.997079 time.strftime('%Y-%m-%d %H:%M:%S %p') 结构化时间st ...
- 【451】python 同一行打印进度条
参考:Python3 Print 同一行打印显示进度条效果 参考:\r\n, \r and \n what is the difference between them? [duplicate] 参考 ...
- 小技巧:with用法 pycharm控制台输出带颜色的文字 打印进度条的
with用法 with用法在python中是一个很独特的用法,因为别的语言的中没有这个用法.所以针对这个特点我们来做一次总结,什么样的情况下可以同with 我们学到的有文件的操作,和acquire ...
- sys模块进度条玩法笔记
#! /user/bin/env python# -*- encoding:utf-8 -*-import time,sys for i in range(31): sys.stdout.write( ...
- sys模块 进度条百分比
用于提供对Python解释器相关的操作: sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) ...
- 利用print函数模拟打印进度条
import time , , ): time.sleep(0.1) num = i // 2 # 地板除,即取不大于/后的最小整数(3//2 = 1, 9//4 = 2, -7//2 = -4) s ...
- python打印进度条
import sys,time第一种方法: for i in range(50): sys.stdout.write("#") time.sleep(0.1) sys.stdout ...
随机推荐
- python绝对路径和相对路径
转自https://blog.csdn.net/databatman/article/details/49453953 下面的路径介绍针对windows,其他平台的暂时不是很了解. 在编写的py文件中 ...
- linux mysql -- ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid)
转载 http://blog.csdn.net/caiyaodeng/article/details/45937183 linux 链接mysql 报错 ERROR! The server quit ...
- Lodop控件NewPage();测试输出空白页
LODOP.NewPage();和LODOP.NewPageA();是强制分页语句,两者的区别可查看本博客的相关博文:Lodop强制分页LODOP.NewPage()和LODOP.NewPageA() ...
- 学习 Spring (十一) 注解之 Spring 对 JSR 支持
Spring入门篇 学习笔记 @Resource Spring 还支持使用 JSR-250 中的 @Resource 注解的变量或 setter 方法 @Resource 有一个 name 属性,并且 ...
- Jarvis OJ A Piece Of Cake
看图片的隐写术自闭,本来想看一看jarvisoj 的basic放松一下心情,结果一道题就做了一晚上qwq 首先看到这道题的时候想到的是凯撒密码(这其实是Google之后才知道这个名字的)枚举了26种位 ...
- P2123 皇后游戏
题目背景 还记得 NOIP 2012 提高组 Day1 的国王游戏吗?时光飞逝,光阴荏苒,两年 过去了.国王游戏早已过时,如今已被皇后游戏取代,请你来解决类似于国王游 戏的另一个问题. 题目描述 皇后 ...
- Lisp小程序,大作用,不该放弃!
从听说autolisp到现在已经20年了, 学了一点点, 可惜中间没能坚持下来, 放弃了! 今天在画图, 图纸是从revit转成dwg的, 其中有些文本的朝向是错误的, 如果手工旋转很是费事, ...
- java中值类型与引用类型的关系
值类型:就是java的基本类型.byte.short.int.long.float.char.double.boolean 引用类型:类(class).接口(Interface).数组(Array) ...
- 安装 xadmin 报错: Command "python setup.py egg_info" failed with error code 1 in C:\Users\Python\AppData\Local\Temp\pip-install-1k1byg0p\xadmin\
报错详情 安装 xadmin 组件的时候报错 不论是命令行还是 pycharm 方式都不行 分析报错 按照报错提示是说 README.rst 文件的编码问题导致. 解决报错 通过 github 下载源 ...
- ans Single VIP LLB and SLB config
ans Single VIP LLB and SLB config 配置命令: # 配置设备工作模式和开启的功能 > enable ans mode FR MBF Edge USNIP L3 P ...