[ python ] 使用sys模块实现进度条
在写网络IO传输的时候, 有时候需要进度条来显示当前传输进度,使用 sys 模块就可以实现:
sys.stdout.write() 这个函数在在控制台输出字符串不会带任何结尾,这就意味着这个输出还没有结束,可以使用 sys.stdout.flush() 函数将输出暂时打印到控制台上,
然后可以使用 '\r' 在回到首行继续输出。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys, time
bar_length = 100 # 进度条为 100 个 '='
x = 0
y = 1000
mode = '下载中' while x != y:
x += 10
percent = float(x) / float(y) # 计算是否是断点续传,当为 x 为0 表示第一次传输,当 x 为非零数 表示续传;
hashes = '=' * int(percent * bar_length) # 计算进度条百分比, 1% 代表 1个'=' 10% 代表 10个 '='
spaces = ' ' * (bar_length - len(hashes)) # 计算进度条剩余长度,用空格表示
# \r 要写在行首,mode:模式, x:增长长度,y:总大小, percent*100 增长的百分比, hashes: 进度条长度 spaces: 空格长度 hashes+spaces = 100%
sys.stdout.write('\r%s:%.2f/%.2f %d%% [%s]' %(mode, x, y, percent*100, hashes+spaces))
sys.stdout.flush()
time.sleep(0.2)
运行如图:
[ python ] 使用sys模块实现进度条的更多相关文章
- sys模块和os模块,利用sys模块生成进度条
sys模块import sysprint(sys.argv)#sys.exit(0) #退出程序,正常退出exit(0)print(sys.version) #获取 ...
- python(5)- sys.stdout()实现进度条
1. 使用\r , 让其始终在行首输出,实现进度条 import sys, time ''' 使用\r 来实现进度条的效果,\r 是光标移到行首但不换行. 假设文件大小为60,一下下载1, 下载到60 ...
- python_way day6 反射,正则 模块(进度条,hash)
python_way day6 反射 正则 模块 sys,os,hashlib 一.模块: 1.sys & os: 我们在写项目的时候,经常遇到模块互相调用的情况,但是在不同的模块下我们通过什 ...
- python之sys模块
38.python的sys模块: 用于提供对Python解释器相关的操作: 1 2 3 4 5 6 7 8 9 sys.argv 命令行参数List,第一个元素是程序本身路径 sy ...
- 二十四、python中sys模块
'''1.sys.argv:命令行参数List,第一个元素是程序本身路径''' import sys print (sys.argv)-------------------------------[' ...
- python之sys模块详解
python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...
- Python中sys模块
Python的sys模块提供访问解释器使用或维护的变量,和与解释器进行交互的函数.通俗来讲,sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python运行时的环境. ...
- python预课02 time模块,文本进度条示例,数字类型操作,字符串操作
time模块 概述:time库是Python中处理时间的标准库,包含以下三类函数 时间获取: time(), ctime(), gmtime() 时间格式化: strftime(), strptime ...
- Python3用sys和time模块实现进度条
import sys import time def view_bar(num, total): rate = float(num) / float(total) rate_num = int(rat ...
随机推荐
- Halcon和Opencv区别
Halcon:机器视觉行业里知名的商业视觉库,非开源的,在国内市场份额处于第一,其提供了1500个多个API算子供开发人员使用,有些编程基础的都可以轻松的入门,其调试也是很方便的,断点单步运行,图像变 ...
- 平面最近点对(HDU 1007)
题解:点击 #include <stdio.h> #include <string.h> #include <algorithm> #include <ios ...
- Uuuuuunity
foreach http://blog.csdn.net/byondocean/article/details/6871881 yield http://www.cnblogs.com/CareyS ...
- phpStoram破解方法
- iOS版微信开发小结(微信支付,APP跳转微信公众号)
最近公司心血来潮,一心要搞微信.废话不多说,直接上干货. 开发前准备: 1.在微信开发者平台获取开发者认证:(一年300元人民币) PS:具体流程按照微信流程指示操作即可,在这就不废话了. 2.下载微 ...
- PAT 1088 三人行
https://pintia.cn/problem-sets/994805260223102976/problems/1038429286185074688 子曰:“三人行,必有我师焉.择其善者而从之 ...
- 找jar包的网址
http://search.maven.org/#search%7Cga%7C1%7Cmybatis http://mvnrepository.com/
- 如何在自家厨房里制作LSD
如何在自家厨房里制作LSD -------------------------------------------------------------------------------- D-麦角酸 ...
- CF762D Maximum Path
题目戳这里. 首先明确一点,数字最多往左走一次,走两次肯定是不可能的(因为只有\(3\)行). 然后我们用\(f_{i,j}\)表示前\(i\)行,第\(i\)行状态为\(j\)的最优解.(\(j\) ...
- OpenJudge百炼-2747-数字方格-C语言-枚举
描述:如上图,有3个方格,每个方格里面都有一个整数a1,a2,a3.已知0 <= a1, a2, a3 <= n,而且a1 + a2是2的倍数,a2 + a3是3的倍数, a1 + a2 ...