如何打破"打破" out urllib阅读

时间:2015-10-23 01:51:43

标签: python urllib

如果发生某些事件,我想在打开网址时停止read。问题是,我不知道该怎么做。 例如:

data = urllib.request.urlopen('http://google.com')
readData = data.read() # How do I stop the reading if certain event occurs?

由于

1 个答案:

答案 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