1

我需要使用 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调用该方法时从源代码读取,而不是将响应中的任何内容(标题除外)带入内存,直到我想要它为止。

4

1 回答 1

3

是的。检查Requests包裹

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

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))
于 2013-02-21T00:42:58.730 回答