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第八周:详解网络编程基础(socket)
Dec 14 Python
Python中标准模块importlib详解
Apr 16 Python
python实现顺序表的简单代码
Sep 28 Python
python3使用QQ邮箱发送邮件
May 20 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
Jun 21 Python
Python实现直方图均衡基本原理解析
Aug 08 Python
Python 模拟动态产生字母验证码图片功能
Dec 24 Python
python的sys.path模块路径添加方式
Mar 09 Python
Keras实现支持masking的Flatten层代码
Jun 16 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
Python通过类的组合模拟街道红绿灯
Sep 16 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 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实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
php更新mysql后获取影响的行数发生异常解决方法
2013/03/28 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
你可能不知道PHP get_meta_tags()函数
2014/05/12 PHP
smarty中js的调用方法示例
2014/10/27 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
Vue创建头部组件示例代码详解
2018/10/23 Javascript
js实现随机8位验证码
2020/07/24 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python 含参构造函数实例详解
2017/05/25 Python
如何基于Python实现自动扫雷
2020/01/06 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
python lambda函数及三个常用的高阶函数
2020/02/05 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
HTML+CSS+JavaScript实现图片3D展览的示例代码
2020/10/12 HTML / CSS
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
公务员的自我鉴定
2013/10/26 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
2015年销售员工作总结范文
2015/04/07 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL