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 13 Python
基于Python实现对PDF文件的OCR识别
Aug 05 Python
python多进程和多线程究竟谁更快(详解)
May 29 Python
python爬虫获取多页天涯帖子
Feb 23 Python
如何利用python查找电脑文件
Apr 27 Python
Python 使用类写装饰器的小技巧
Sep 30 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
Feb 22 Python
Python3字符串encode与decode的讲解
Apr 02 Python
Python如何使用函数做字典的值
Nov 30 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
Jan 20 Python
python如何爬取网页中的文字
Jul 28 Python
Django haystack实现全文搜索代码示例
Nov 28 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实现对两个数组进行减法操作的方法
2015/04/17 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
2015/07/01 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
extjs form textfield的隐藏方法
2008/12/29 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
jQuery操作JSON的CRUD用法实例
2015/02/25 Javascript
javascript检查浏览器是否已经启用XX功能
2015/07/10 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
微信小程序实现下滑到底部自动翻页功能
2020/03/07 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
用Python的urllib库提交WEB表单
2009/02/24 Python
python构建深度神经网络(DNN)
2018/03/10 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
pandas 使用均值填充缺失值列的小技巧分享
2019/07/04 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
python交互模式基础知识点学习
2020/06/18 Python
Python如何输出百分比
2020/07/31 Python
python 模块导入问题汇总
2021/02/01 Python
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
大学生就业自我鉴定
2013/10/26 职场文书
会计助理的岗位职责
2013/11/29 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
导游词之山东孔庙
2019/11/04 职场文书