Python实现带百分比的进度条


Posted in Python onJune 28, 2016

大家在安装程序或下载文件时,通常都能看到进度条,提示你当前任务的进度。其实,在python中实现这个功能很简单,下面是具体代码。在实际应用中,你完全可以根据自己的要求进行修改!比如,示例中是通过time.sleep()方法进行时间延迟,你完全可以根据实际的程序运行耗时进行控制;同样,在进度百分比处,你也可以显示实际的进度比,而不是例子中机械的自增百分比。

import sys
import time

def view_bar(num, total):
  rate = num / total
  rate_num = int(rate * 100)
  r = '\r[%s%s]%d%%' % ("="*num, " "*(100-num), rate_num, )
  sys.stdout.write(r)
  sys.stdout.flush()

if __name__ == '__main__':
  for i in range(0, 101):
    time.sleep(0.1)
    view_bar(i, 100)

再给大家分享一个方法

import hashlib
 
a = "a test string"
print hashlib.md5(a).hexdigest()
print hashlib.sha1(a).hexdigest()
print hashlib.sha224(a).hexdigest()
print hashlib.sha256(a).hexdigest()
print hashlib.sha384(a).hexdigest()
print hashlib.sha512(a).hexdigest()

再来一个复杂点的函数吧

#!/usr/bin/env python
#-*- coding:utf-8 -*-
import threading
import time
'''
class Demo:
  def __init__(self,thread_num=5):
    self.thread_num=thread_num
  def productor(self,i):
    print "thread-%d start" %i
  def start(self):
    threads=[]
    for x in xrange(self.thread_num):
      t=threading.Thread(target=self.productor,args=(x,))
      threads.append(t)
    for t in threads:
      t.start()
    for t in threads:
      t.join()
    print 'all thread end'
 
demo=Demo()
demo.start()
'''
thread_num=10
def productor(i):
    print "thread-%d start" %i
    time.sleep(2)
def start():
    threads=[]
    for x in range(thread_num):
      t=threading.Thread(target=productor,args=(x,))
      threads.append(t)
    for t in threads:
      t.start()
    for t in threads:
      t.join()
    print 'all thread end'

start()
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import paramiko
import sys

private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
t = paramiko.Transport(('vm_135',22))
# 连接服务器
t.connect(username='root',pkey=private_key)
ssh.connect(hostname='vm_135', port=22, username='root',pkey=private_key)
# 执行命令
sftp = paramiko.SFTPClient.from_transport(t)
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = stdout.read()
print result

def progress_bar(transferred, toBeTransferred, suffix=''):
    # print "Transferred: {0}\tOut of: {1}".format(transferred, toBeTransferred)
    bar_len = 60
    filled_len = int(round(bar_len * transferred/float(toBeTransferred)))
    percents = round(100.0 * transferred/float(toBeTransferred), 1)
    bar = '=' * filled_len + '-' * (bar_len - filled_len)
    sys.stdout.write('[%s] %s%s ...%s\r' % (bar, percents, '%', suffix))
    sys.stdout.flush()
sftp.put("/tmp/134","/tmp/134",callback=progress_bar)

#for filename in filenames:
#  sftp.put(os.path.join(dirpath, filename),
#       os.path.join(remote_path, filename),
#       callback=self.progress_bar)
#  print
#  print "upload %s/%s" % (remote_path, filename) + '\t' + '[' + green("success") + ']'
ssh.close()

以上就是本文的全部内容了,大家是否对使用Python实现带百分比进度条有了新的认识了呢,希望大家能够喜欢。

Python 相关文章推荐
Python中无限元素列表的实现方法
Aug 18 Python
Python使用SocketServer模块编写基本服务器程序的教程
Jul 12 Python
简单谈谈python中的多进程
Nov 06 Python
python编程线性回归代码示例
Dec 07 Python
Python中支持向量机SVM的使用方法详解
Dec 26 Python
Pytorch Tensor的索引与切片例子
Aug 18 Python
django有外键关系的两张表如何相互查找
Feb 10 Python
多个python文件调用logging模块报错误
Feb 12 Python
python 实现图片修复(可用于去水印)
Nov 19 Python
详解pandas赋值失败问题解决
Nov 29 Python
Anaconda安装pytorch和paddle的方法步骤
Apr 03 Python
Python使用MapReduce进行简单的销售统计
Apr 22 Python
Python中的字符串替换操作示例
Jun 27 #Python
Python的string模块中的Template类字符串模板用法
Jun 27 #Python
Python的Flask框架及Nginx实现静态文件访问限制功能
Jun 27 #Python
总结网络IO模型与select模型的Python实例讲解
Jun 27 #Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 #Python
Python的Tornado框架的异步任务与AsyncHTTPClient
Jun 27 #Python
深入解析Python中的descriptor描述器的作用及用法
Jun 27 #Python
You might like
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
?算你??的 PHP 程式大小
2006/12/06 PHP
PHP 采集程序 常用函数
2008/12/18 PHP
PHP服务器页面间跳转实现方法
2012/08/02 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
2014/05/29 PHP
php解析base64数据生成图片的方法
2016/12/06 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
简单实例处理url特殊符号&处理(2种方法)
2013/04/02 Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
2015/03/05 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
vue项目优化之通过keep-alive数据缓存的方法
2017/12/11 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
python标准日志模块logging的使用方法
2013/11/01 Python
python代码制作configure文件示例
2014/07/28 Python
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
深入理解Python3 内置函数大全
2017/11/23 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
Python中反射和描述器总结
2018/09/23 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
化工专业推荐信范文
2013/11/28 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
骨干教师考核评语
2014/12/31 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python