httplib2在python中下载进度条

时间:2011-02-20 06:21:07

标签: python progress-bar httplib2

使用httplib2时是否可以显示文件在python中下载的百分比?我知道你可以使用urllib2,但我想使用httplib2。

2 个答案:

答案 0 :(得分:2)

没有。 httplib2没有任何进展信标回调,所以它只是阻塞直到请求完成。

答案 1 :(得分:0)

我不太确定如何使用async() 似乎它已经正式解决了。

并且可以通过自己修改httplib2: (向request()func添加回调函数arg) Http中的: 在def _request中:将其修改为:

def _request(self, conn, host, absolute_uri, request_uri, method, body, headers, redirections, cachekey,callback=None):
def _conn_requst中的

将其修改为:

def _conn_request(self, conn, request_uri, method, body, headers,callback=None):

修改以下内容

if method == "HEAD":
    conn.close()
else:
    if not callback:
        content = response.read()
    else:
        while 1:
           content=response.read(callback[0])
           if not content:break
           callback[1]()

使用时你可以这样输入:

resp, content = h.request("http://stackoverflow.com", [8192,callbackfunc])

第一个8192是块大小,callbackfunc是你定义的回调函数(比如在urllib中)