2010-11-28 77 views
0

我试图用多线程下载图像,它在python中有一个有限的max_count。图像下载问题(python)

每次启动download_thread时,我都会保留它并激活另一个。我希望下载过程可以以5秒结束,这意味着如果打开网址的时间超过5秒,下载失败。

但我怎么知道它,并停止失败的线程?

+0

我在修复它后破坏了格式。代码通过缩进四个空格来表示(使用`101010`按钮或Ctrl + K)。 – Johnsyweb 2010-11-28 07:08:38

回答

3

你能告诉你正在使用哪个版本的python吗? 也许你可能已经发布了一个片段。 从Python 2.6开始,你在urllib2.urlopen中添加了一个超时。 希望这会帮助你。它来自python文档。

urllib2.urlopen(URL [,数据] [, 超时])打开URL链接,其可以 是字符串或一个请求 对象。

警告HTTPS请求不会对服务器的 证书进行任何 验证。数据可能是一个字符串 ,指定要发送到服务器的其他数据为 ,或者如果不需要此类数据,则不需要这种数据 。目前HTTP请求是 唯一使用数据的请求;当提供数据参数为 时,HTTP 请求将是POST而不是 GET。数据应该是 缓冲区中的标准 application/x-www-form-urlencoded 格式。 urllib.urlencode() 函数采用2元组的映射或序列 ,并以这种格式返回 的字符串。 urllib2模块发送 HTTP/1.1请求与 连接:包括关闭标头。

可选超时参数 指定秒的超时为 像 连接尝试阻塞操作(如果未指定, 全局默认超时设置 将被使用)。这实际上只有 适用于HTTP,HTTPS和FTP 连接。

这个函数返回一个类文件 对象有两个方法:)

的getURL( - 返回检索的 资源,常用来 的URL确定是否重定向之后 信息() - 返回mimetools.Message实例的 表单中页面的元信息 (如标题) (请参阅HTTP标题的快速参考) 在发生错误时引发URLError。

注意,无可能,如果没有 处理程序处理请求(虽然 默认安装全球 OpenerDirector使用UnknownHandler以 确保这永远不会发生)返回。

另外,默认安装了 ProxyHandler确保当 被设置时,通过代理处理请求 。

版本2.6更改:超时是 添加。

+0

非常感谢!!!我会稍后再尝试,并在必要时发布一个片段 – 2010-11-28 13:06:25