Python实现带百分比的进度条
大家在安装程序或下载文件时,通常都能看到进度条,提示你当前任务的进度。其实,在python中实现这个功能很简单,下面是具体代码。在实际应用中,你完全可以根据自己的要求进行修改!比如,示例中是通过time.sleep()方法进行时间延迟,你完全可以根据实际的程序运行耗时进行控制;同样,在进度百分比处,你也可以显示实际的进度比,而不是例子中机械的自增百分比。
importsys
importtime
defview_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__':
foriinrange(0,101):
time.sleep(0.1)
view_bar(i,100)
再给大家分享一个方法
importhashlib a="ateststring" printhashlib.md5(a).hexdigest() printhashlib.sha1(a).hexdigest() printhashlib.sha224(a).hexdigest() printhashlib.sha256(a).hexdigest() printhashlib.sha384(a).hexdigest() printhashlib.sha512(a).hexdigest()
再来一个复杂点的函数吧
#!/usr/bin/envpython #-*-coding:utf-8-*- importthreading importtime ''' classDemo: def__init__(self,thread_num=5): self.thread_num=thread_num defproductor(self,i): print"thread-%dstart"%i defstart(self): threads=[] forxinxrange(self.thread_num): t=threading.Thread(target=self.productor,args=(x,)) threads.append(t) fortinthreads: t.start() fortinthreads: t.join() print'allthreadend' demo=Demo() demo.start() ''' thread_num=10 defproductor(i): print"thread-%dstart"%i time.sleep(2) defstart(): threads=[] forxinrange(thread_num): t=threading.Thread(target=productor,args=(x,)) threads.append(t) fortinthreads: t.start() fortinthreads: t.join() print'allthreadend' start()
#!/usr/bin/envpython
#-*-coding:utf-8-*-
importparamiko
importsys
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()
printresult
defprogress_bar(transferred,toBeTransferred,suffix=''):
#print"Transferred:{0}\tOutof:{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)
#forfilenameinfilenames:
#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实现带百分比进度条有了新的认识了呢,希望大家能够喜欢。