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中while循环语句用法简单实例
May 07 Python
Python中转换角度为弧度的radians()方法
May 18 Python
Python中subprocess模块用法实例详解
May 20 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
Sep 18 Python
浅析Python中的赋值和深浅拷贝
Aug 15 Python
Python中的random.uniform()函数教程与实例解析
Mar 02 Python
树莓派用python中的OpenCV输出USB摄像头画面
Jun 22 Python
python实现简单聊天室功能 可以私聊
Jul 12 Python
Python 音频生成器的实现示例
Dec 24 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
Oct 31 Python
python定时截屏实现
Nov 02 Python
Pytorch 如何加速Dataloader提升数据读取速度
May 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
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
2019/09/26 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
python局部赋值的规则
2013/03/07 Python
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
python模拟鼠标拖动操作的方法
2015/03/11 Python
python动态加载包的方法小结
2016/04/18 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
Python hashlib模块用法实例分析
2018/06/12 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
营业经理岗位职责
2013/11/10 职场文书
服务生自我鉴定
2014/01/22 职场文书
爱护公物主题班会
2015/08/17 职场文书
什么是创业计划书?什么是商业计划书?这里一一解答
2019/07/12 职场文书
python基础之停用词过滤详解
2021/04/21 Python
Go语言空白表示符_的实例用法
2021/07/04 Golang
vue实现拖拽交换位置
2022/04/07 Vue.js