利用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 ... 
