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的框架中一些会话程序的管理
Apr 20 Python
Python合并两个字典的常用方法与效率比较
Jun 17 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
Nov 05 Python
Django 外键的使用方法详解
Jul 19 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
Aug 21 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
Nov 26 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
Python字典深浅拷贝与循环方式方法详解
Feb 09 Python
pygame实现飞机大战
Mar 11 Python
python新手学习使用库
Jun 11 Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 Python
flask项目集成swagger的方法
Dec 09 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
用php代码限制国内IP访问我们网站
2015/09/26 PHP
运用jquery实现table单双行不同显示并能单行选中
2009/07/25 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
JS正则表达式验证数字代码
2014/01/28 Javascript
JS跨域问题详解
2014/11/25 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
python中尾递归用法实例详解
2015/04/28 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
运动会加油稿100字
2014/09/19 职场文书
2014年仓管员工作总结
2014/11/18 职场文书
2015年国培研修感言
2015/08/01 职场文书
工作服管理制度范本
2015/08/06 职场文书
幼儿园教师教育随笔
2015/08/14 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
《确定位置》教学反思
2016/02/18 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
Golang 遍历二叉树
2022/04/19 Golang
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript