我有用于长期运行进程的 Web 界面客户端。我希望该过程的输出在出现时显示出来。很好用urllib.urlopen()
,但它没有timeout
参数。另一方面,urllib2.urlopen()
输出被缓冲。有没有一种简单的方法可以禁用该缓冲区?
问问题
1592 次
2 回答
0
我想到的一个快速技巧是使用urllib.urlopen()
withthreading.Timer()
来模拟超时。但这只是快速而肮脏的黑客攻击。
于 2010-10-08T08:23:16.090 回答
0
urllib2
刚打电话时被缓冲read()
您可以定义要读取的大小,从而禁用缓冲。
例如:
import urllib2
CHUNKSIZE = 80
r = urllib2.urlopen('http://www.python.org')
while True:
chunk = r.read(CHUNKSIZE)
if not chunk:
break
print(chunk)
这将在从套接字读取每个块后打印响应,而不是在收到整个响应之前缓冲。
于 2013-04-30T17:07:53.343 回答