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 07 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
selenium python浏览器多窗口处理代码示例
Jan 15 Python
简单谈谈python中的lambda表达式
Jan 19 Python
Python基于dom操作xml数据的方法示例
May 12 Python
python同步windows和linux文件
Aug 29 Python
详解python tkinter模块安装过程
Jan 06 Python
tensorflow使用指定gpu的方法
Feb 04 Python
python tkinter之 复选、文本、下拉的实现
Mar 04 Python
python 多进程和协程配合使用写入数据
Oct 30 Python
BeautifulSoup获取指定class样式的div的实现
Dec 07 Python
利用python做表格数据处理
Apr 13 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 Zip解压 文件在线解压缩的函数代码
2010/05/26 PHP
php获取qq用户昵称和在线状态(实例分析)
2013/10/27 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
跟我学Laravel之路由
2014/10/15 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
php自动加载方式集合
2016/04/04 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
node.js 动态执行脚本
2016/06/02 Javascript
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
小程序实现搜索框
2020/06/19 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
如何在Python中编写并发程序
2016/02/27 Python
Python实现网络端口转发和重定向的方法
2016/09/19 Python
基于Python List的赋值方法
2018/06/23 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
python中os包的用法
2020/06/01 Python
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
测绘工程个人的自我评价
2013/11/23 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
债务授权委托书范本
2014/10/17 职场文书
经验交流材料格式
2014/12/30 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
《卧薪尝胆》读后感3篇
2019/12/26 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python