如果发生某些事件,我想在打开网址时停止read
。问题是,我不知道该怎么做。
例如:
data = urllib.request.urlopen('http://google.com')
readData = data.read() # How do I stop the reading if certain event occurs?
由于
答案 0 :(得分:1)
read()
获取一次读取多少字节的参数。例如。 data = read(4096)
只读取4 kB一次。读取切片中的数据,并在每个切片检查断裂条件后。或者如果这是不可接受的选项,则在另一个线程中运行读取循环。
它应该在伪Python中看起来像这样:
import urllib2
CHUNKSIZE = 4096
r = urllib2.urlopen('http://www.python.org')
buffer = b''
while True:
chunk = r.read(CHUNKSIZE)
if not chunk:
break
if bad_thing_happened:
break
buffer += chunk