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编程实例详解
May 27 Python
python爬取亚马逊书籍信息代码分享
Dec 09 Python
浅析python协程相关概念
Jan 20 Python
详解python实现线程安全的单例模式
Mar 05 Python
使用Python写一个小游戏
Apr 02 Python
Flask框架Flask-Principal基本用法实例分析
Jul 23 Python
python 批量修改/替换数据的实例
Jul 25 Python
Python3最长回文子串算法示例
Mar 04 Python
python tkinter窗口最大化的实现
Jul 15 Python
python飞机大战 pygame游戏创建快速入门详解
Dec 17 Python
使用Python 自动生成 Word 文档的教程
Feb 13 Python
深入探讨opencv图像矫正算法实战
May 21 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
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
python中循环语句while用法实例
2015/05/16 Python
RC4文件加密的python实现方法
2015/06/30 Python
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
对Python3 序列解包详解
2019/02/16 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
男方父母婚礼答谢词
2014/01/25 职场文书
不拖欠农民工工资承诺书
2014/03/31 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
酒桌上的开场白
2015/06/01 职场文书
网络妈妈观后感
2015/06/08 职场文书
校园运动会广播稿
2015/08/19 职场文书
导游词之山西-五老峰
2019/10/07 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python
使用MybatisPlus打印sql语句
2022/04/22 SQL Server