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 文件重命名工具代码
Jul 26 Python
python进阶教程之函数参数的多种传递方法
Aug 30 Python
Python微信公众号开发平台
Jan 25 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
Python给图像添加噪声具体操作
Mar 03 Python
Python 3.8正式发布,来尝鲜这些新特性吧
Oct 15 Python
基于python的列表list和集合set操作
Nov 24 Python
Python AutoCAD 系统设置的实现方法
Apr 01 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
Jun 02 Python
Python eval函数原理及用法解析
Nov 14 Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 07 Python
python利用appium实现手机APP自动化的示例
Jan 26 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开发--使用七牛云储存
2017/09/14 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
Javascript的一种模块模式
2008/03/22 Javascript
javascript 面向对象 function类
2010/05/13 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
url参数中有+、空格、=、%、&、#等特殊符号的问题解决
2013/05/15 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
javascript中的throttle和debounce浅析
2014/06/06 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
小程序关于请求同步的总结
2019/05/05 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
微信小程序学习之自定义滚动弹窗
2020/12/20 Javascript
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
Win8下python3.5.1安装教程
2020/07/29 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
自强之星事迹材料
2014/05/12 职场文书
幼儿园六一儿童节活动方案
2014/08/26 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书