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正常时间和unix时间戳相互转换的方法
Apr 23 Python
总结python爬虫抓站的实用技巧
Aug 09 Python
Python中模块与包有相同名字的处理方法
May 05 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
python如何对实例属性进行类型检查
Mar 20 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
Python将8位的图片转为24位的图片实现方法
Oct 24 Python
分享PyCharm的几个使用技巧
Nov 10 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
Python基础之hashlib模块详解
May 06 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
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
PHP简单实现文本计数器的方法
2016/04/28 PHP
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
浅谈Python中数据解析
2015/05/05 Python
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
Python命令行解析模块详解
2018/02/01 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
2020/06/18 Python
sklearn和keras的数据切分与交叉验证的实例详解
2020/06/19 Python
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
简历的自我评价
2014/02/03 职场文书
红旗方阵解说词
2014/02/12 职场文书
关于环保的活动方案
2014/08/25 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS