如何获得回调函数以定期打印内容?

时间:2014-03-29 08:08:17

标签: python callback

 def callback(data):
        global sizeWritten
        file.write(data)
        sizeWritten += len(data)
        a = sizeWritten/totalSize*100
        print("Downloading " + item + ":" + str(int(a)) + " %")

在我下载的每个文件块之后调用此函数。如果文件相当大,我很快会得到数百万行输出。我想在每次成功下载5%后打印一行。我该怎么做?

1 个答案:

答案 0 :(得分:1)

您应该在方法之外创建另一个名为totalProgress的变量,并将其初始化为0.然后,您可以像global totalProgress一样执行global sizeWritten

然后你可以这样做:

您的代码

totalProgress = 0.0    #this is a percentage value

def callback(data):
    global sizeWritten
    global totalProgress
    file.write(data)
    sizeWritten += len(data)
    a = (sizeWritten/totalSize)*100.0
    if a - totalProgress > 5.0:
        print("Downloading " + item + ":" + str(int(a)) + " %")
        totalProgress = a