Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获得一个回调函数,以便只定期打印某些内容?_Python_Callback - Fatal编程技术网

Python 如何获得一个回调函数,以便只定期打印某些内容?

Python 如何获得一个回调函数,以便只定期打印某些内容?,python,callback,Python,Callback,该函数在我下载的每个文件块之后调用。如果文件相当大,我很快就会得到数百万行的输出。我想它打印一行后,每成功下载5%。如何执行此操作?您应该在方法之外创建另一个名为totalProgress的变量,并将其初始化为0。然后您可以执行global totalProgress,就像您对global sizewrited所做的那样 然后,您可以按如下方式进行操作: 你的代码 def callback(data): global sizeWritten file.write

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

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

然后,您可以按如下方式进行操作:

你的代码
 def callback(data):
        global sizeWritten
        file.write(data)
        sizeWritten += len(data)
        a = sizeWritten/totalSize*100
        print("Downloading " + item + ":" + str(int(a)) + " %")
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