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脚本实现集群检测和管理功能
Mar 06 Python
python通过wxPython打开一个音频文件并播放的方法
Mar 25 Python
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
Apr 11 Python
python中enumerate函数遍历元素用法分析
Mar 11 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
python中requests小技巧
May 10 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
python中reader的next用法
Jul 24 Python
python实现点对点聊天程序
Jul 28 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
Dec 17 Python
利用Python脚本实现自动刷网课
Feb 03 Python
Python安装使用Scrapy框架
Apr 12 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
APMServ使用说明
2006/10/23 PHP
PHP学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
微信公众号实现会员卡领取功能
2017/06/08 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
JavaScript基本语法学习教程
2016/01/14 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
python 把列表转化为字符串的方法
2018/10/23 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
Python Map 函数的使用
2020/08/28 Python
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
成语的广告词
2014/03/19 职场文书
学校节能减排倡议书
2014/05/16 职场文书
演讲稿的写法
2014/05/19 职场文书
2014年纪检工作总结
2014/11/12 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
责任书格式
2019/04/18 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书
Python Django获取URL中的数据详解
2021/11/01 Python
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技