0

我如何解析其他功能打印?IE。功能打印

131072 of 1093419 downloaded
393216 of 1093419 downloaded
786432 of 1093419 downloaded
1089536 of 1093419 downloaded

我想用这些数据创建一个仪表(http://wiki.wxpython.org/wxGauge%20Widget)。

4

1 回答 1

2

正如@AlexChamberlain 所说,您必须做的最好的方法是修补巨型库,以便您可以使用它的输出并充分利用它,您可以轻松地更改代码,如下所示:

在文件mega/mega.py中,您更改download_file方法,以便它调用所有结果的回调而不是打印它们:

def download_file(self, file_handle, file_key, dest_path=None, dest_filename=None, is_public=False, file=None, callback=None):

然后在第 496 行使用该回调。而不是该行:

print('{0} of {1} downloaded'.format(file_info.st_size, file_size))

您添加:

if callback:
    callback(file_info.st_size, file_size)
else:
    print('{0} of {1} downloaded'.format(file_info.st_size, file_size))

然后你必须改变所有调用函数的原型download_file(),例如download()

def download(self, file, dest_path=None, dest_filename=None, callback=None):
    """
    Download a file by it's file object
    """
    self.download_file(None, None, file=file[1], dest_path=dest_path, dest_filename=dest_filename, is_public=False, callback=callback)

最后,您可以按如下方式使用下载:

def myupdater(current, total):
    print "downloaded {0}/{1} so far".format(current, total)

mega.download('xxx', '/tmp', 'foo', callback=myupdater)

当然,我的答案并不完整(您必须这样做download_url并确定是否应将相同的模式应用于其他功能,例如上传)。但我希望你能明白这一点,这样你就可以为向开源项目提交补丁而感到自豪!

注意:要创建补丁,您应该在 github 上查看此文档。

高温高压

于 2013-06-22T14:25:52.290 回答