1

我目前正在使用结构框架生成一个 python 脚本,该框架应该从远程服务器收集备份并将其本地存储在运行结构的客户端上。

现在,由于备份文件大于 400MB,传输它需要相当长的时间。这是我的问题出现的地方:

织物 get() 函数是否有任何类型的进度条?或者更确切地说,是否可以以某种方式添加进度条?

这是我的一段代码:

def collect_backup():
    env.warn_only=True
    run('uptime')
    print "Copying scrips to be run..."
    filename, remotepath = _getlatest()
    print "Copy complete."
    print "Collecting backup..."
    localpath = _collect(filename, remotepath)

def _collect(filename, remotepath):
    a=remotepath + filename
    localpath="/home/bcns/backups/"
    ####Here's the get() I was talking about
    get(a, localpath)
    return(localpath)

“文件名”和“远程路径”变量在另一个函数中设置。

4

1 回答 1

-1

以下网站上有很多很棒的信息:

http://thelivingpearl.com/2012/12/31/creating-progress-bars-with-python/

这是他们对带有线程的控制台 prog 栏的解决方案:

import sys
import time
import threading

class progress_bar_loading(threading.Thread):

    def run(self):
            global stop
            global kill
            print 'Loading....  ',
            sys.stdout.flush()
            i = 0
            while stop != True:
                    if (i%4) == 0: 
                        sys.stdout.write('\b/')
                    elif (i%4) == 1: 
                        sys.stdout.write('\b-')
                    elif (i%4) == 2: 
                        sys.stdout.write('\b\\')
                    elif (i%4) == 3: 
                        sys.stdout.write('\b|')

                    sys.stdout.flush()
                    time.sleep(0.2)
                    i+=1

            if kill == True: 
                print '\b\b\b\b ABORT!',
            else: 
                print '\b\b done!',


kill = False      
stop = False
p = progress_bar_loading()
p.start()

try:
    #anything you want to run. 
    time.sleep(1)
    stop = True
except KeyboardInterrupt or EOFError:
         kill = True
         stop = True

希望对您有所帮助或至少可以帮助您入门。

于 2013-10-14T13:35:38.247 回答