python上传文件进度_python实现进度条--主要用在上传下载文件
在python中进行socket上传文件的时候使用进度条,然后在网上找了好久,找寻相关的进度的条的使用,看了几个,发现总是无法进行调用,主要原因是在进行上传文件的时候,每次传送的数据量是固定的,数据的总大小也是知道的,对于那么多的进度条的使用调用方法感觉总是不合适,今天终于发现了如何调用比较好。
进度条的代码如下:
#!/usr/bin/env python
from __future__ import division
import math
import sys
def progressbar(cur,total):
percent = '{:.2%}'.format(cur / total)
sys.stdout.write('\r')
sys.stdout.write('[%-50s] %s' % ( '=' * int(math.floor(cur * 50 /total)),percent))
sys.stdout.flush()
if cur == total:
sys.stdout.write('\n')
if __name__ == '__main__':
file_size = 102400000
size = 1024
while file_size > 0:
progressbar(size*10/file_size,10)
file_size -= 1024
#for i in range(11):
# progressbar(i,10)
# time.sleep(1)
在进行计算百分比的时候,需要用到除法,而基本上都是整数,从而使用到dicision。
在函数progressbar中,cur表示当前的数值,total表示总的数值。
在输出进度的时候,每次都是输出一行,但是每次输出的时候不换行,从而使用\r,每次回到行首,但是不进行换行,然后输出其他的内容对原内容进行覆盖,也就是sys.stdout.write的第二句话。
flush是为了立即进行显示,也就是将进度条直接显示。
在最后,如果当前的等于总的,那么久输出一个回车进行换行,表示输出进度结束。
在测试代码中,file_size表示为文件的大小,size表示每次都要传送的数据量,在循环中,表示每次需要传送1024个字节,然后输出进度条,运行效果如下:
[root@python 519]# python processbar.py
[==================================================] 100.00%
主要就是在开始的时候,觉得需要知道传输文件的速度,才能估算传输的进度,但是使用文件的大小也是可以估算的,从而也就有了size*10/1024,将长度固定为10个,从而输出进度。
在看第二句输出的时候覆盖的时候,可以使用如下的代码:
#!/usr/bin/env python
import sys
sys.stdout.write('[%-10s]' % ('='*3))
sys.stdout.flush()
运行之后会发现进行了替代。其中减号表示向左对齐,10表示使用十个占位符,后面的替换中,表示使用等号替换前三个空格,在每次数量增加后,从而每次替换的数量增多,从而达到运行时候的覆盖效果,从而看起来是动态的进度条。
注意,在python的解释器中直接运行的时候,会输出和在py文件中不一样,是因为在解释器中直接执行了,在py文件中,需要时使用flush来进行刷新。
摘自:https://www.cnblogs.com/kellyseeme/p/5525020.html
python上传文件进度_python实现进度条--主要用在上传下载文件相关推荐
- shell脚本连接ftp推送文件夹_Linux下使用Shell脚本实现FTP自动上传和下载文件
登录FTP实现下载文件功能 FTP服务器:192.168.0.199 FTP路径:/ftphome/data 本地路径:/local/data 将文件从FTP下载到本地的脚本如下: 批量下载脚本代码 ...
- java 安卓下载文件_GitHub - Charay/downloadfile: 使用Retrofit2+Rxjava+Rxandroid+okhttp的方式下载文件并存储到sd卡指定目录...
downloadfile 使用Retrofit2+Rxjava+Rxandroid+okhttp的方式下载文件并存储到sd卡指定目录 使用: gradle Step 1.在工程build.gradle ...
- php抓取curl下载文件,PHP 利用 Curl 函数实现多线程抓取网页和下载文件
PHP 利用 Curl Functions 可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,然而因为php语言本身不支持多线程,所以开发爬虫程序效率并不高,因此经常需要借助Cur ...
- python 判断文件类型_python接口自动化(三十) 上传文件时自动判断文件类型(filetype)...
前言 如何判断一个文件的类型呢,判断这个文件是png还是jpg,还是MP3文件?filetype包是python用来判断文件类型的依赖包,github地址:https://github.com/h2n ...
- python判断空文件夹_python小技巧—自动判断并删除目录下的空文件夹
一.效果展示 首先我在 E:\新建文件夹\test 创建了64个文件夹 然后我在1-10文件夹中创建一个新文件夹(此时他们就不是空文件夹了) 此时我们执行代码 如果此时目录就只剩下新建文件夹1-10 ...
- python运行文件后缀_Python程序存储成以.py为扩展名的程序文件用Python解释器执行。(4.5分)_学小易找答案...
[简答题]简述助跑的两种起动方式? [填空题]在跳远技术的发展过程中,曾经出现过 . . .等3中姿势. [判断题]一般情况下,Python语言中使用符号#表示程序中的注释.(4.5分) [论述题]请 ...
- python读写文件函数_Python开发【第三篇】:函数读写文件
三元运算 三元运算,是条件语句的简单的写法.如果条件为真,则返回值1,否则,返回值2. ret = 值1 if 条件 else 值2 深浅拷贝 对于数字(int)和字符串(str)而言,赋值.深拷贝. ...
- python内置的读取文件函数_Python函数篇(3)-内置函数、文件处理(已更新)
1.内置函数 上一篇文章中,我重点写了reduce.map.filter3个内置函数,在本篇章节中,会补充其他的一些常规内置函数,并重点写max,min函数,其他没有说明的函数,会在后面写到类和面向对 ...
- python建立文件数据库_python学习-- Django根据现有数据库,自动生成models模型文件...
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
最新文章
- 生态伙伴 | 摹客入驻飞书,体验高效产品协作设计!
- android 串口调试
- CSS position绝对定位absolute relative
- 如何将csv包含的数据导入SAP Cloud Platform HANA MDC里
- Python3反转字符串
- 三星s4 android 6.0吗,快了 三星手机适配Android 6.0时间公布
- requests模块(代理)篇
- 物流×科技,易流如何用IoT技术加速物流业数字化升级?...
- Golang 25 个保留关键字
- JAVA地址连接状态检测工具类
- ASCII码对照表(二进制、十进制、十六进制)
- 适用于游戏开发领域的语言
- 插入移动硬盘提示格式化怎么办?数据还有机会找回吗
- mysql 多表中间表查询_mysql多表连接查询
- Arch Linux KDE Plasma + Windows 11 双系统安装指南
- 汽车厂商集体大降价,谁更受伤?
- CList POSITION
- 用Python数据处理分析入门必备系列文章:环境安装
- BMW专注研发、5年累计超50亿欧元
- 服饰美妆新品 | 阿迪达斯可循环跑鞋第三代LOOP系列发布;赫丽尔斯X吃豆人跨界限定系列推出...
热门文章
- 【Flink】Flink使用withParameters(Configuration)传参
- CGLI 报错 :VerifyError: class net.sf.cglib.core.DebuggingClassWriter overrides final method visit
- hive-04-Hive函数大全
- spark学习-Spark Streaming初次理解
- ecs服务器换系统,ecs服务器更换操作系统
- pytorch 指定卡1_收藏 | 13则PyTorch使用的小窍门
- 如何从零设计一款牛逼的高并发架构(建议收藏)
- 生产环境中,RabbitMQ 持续积压消息不进行ack ,发生什么了?
- Java中的浮点数四舍五入到小数点后2位的一些实用方法
- 没在今天以前就此沉沦下去纯属侥幸