用于以类似文件的方式读取HTTP响应的库?

时间:2013-02-21 00:41:09

标签: python http

我需要用Python发出一个HTTP请求来下载一个大文件,但是我需要能够使用类似文件的指针读回响应的块,有点像这个伪代码:

request = HTTPRequest(GET, "http://localhost/bigfile.bin")
request.send()

response = request.get_response()
print "File is {} bytes long.".format(response.content_length)

while True:
    chunk = response.read(1024)
    print "Chunk Length: {}".format(len(chunk))

有这样的API吗?我只想在调用read方法时从源读取,而不是从响应(除标题之外)将任何内容带入内存,直到我想要它。

1 个答案:

答案 0 :(得分:3)

是。查看Requests package

您可以使用stream option来避免获取响应正文,直到您访问它:

req = requests.get('http://localhost/bigfile.bin', stream=True)
print "File is {} bytes long.".format(req.headers['Content-Length'])

while True:
    chunk = req.raw.read(1024)
    print "Chunk Length: {}".format(len(chunk))