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 相关文章推荐
MAC中PyCharm设置python3解释器
Dec 15 Python
python3的输入方式及多组输入方法
Oct 17 Python
python使用pdfminer解析pdf文件的方法示例
Dec 20 Python
Python编程深度学习计算库之numpy
Dec 28 Python
python交互模式下输入换行/输入多行命令的方法
Jul 02 Python
Django的Modelforms用法简介
Jul 27 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
python实现梯度下降和逻辑回归
Mar 24 Python
Python如何解除一个装饰器
Aug 07 Python
python将数据插入数据库的代码分享
Aug 16 Python
python从PDF中提取数据的示例
Oct 30 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部分常见问题总结
2006/10/09 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
JS中的多态实例详解
2017/10/15 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
Django保护敏感信息的方法示例
2019/05/09 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
python生成器用法实例详解
2019/11/22 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
简单介绍Object类的功能、常用方法
2013/10/02 面试题
开放系统互连参考模型
2016/06/29 面试题
Python是如何进行类型转换的
2013/06/09 面试题
日语翻译个人求职的自我评价
2013/10/14 职场文书
大学生毕业的自我鉴定
2013/11/13 职场文书
优秀的自荐信要注意哪些
2014/01/03 职场文书
歌唱比赛获奖感言
2014/01/21 职场文书
活动总结模板
2014/05/09 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
《我的长生果》教学反思
2016/02/20 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python