在工作中,我运气不好,已经修复了由别人完成的python中写得不好的url验证器脚本。这是一个非常混乱的代码,并试图修复其中一个错误,我发现了一些我不明白的行为。python 2.7 IOError:[Errno 24]太多打开的文件:
脚本必须处理一个文件,其中包含大约10万个url,它必须检查每个url以查看它是否有效,不仅在它的结构中,还检查它是否存在(使用pycurl)。在代码的一部分,这样做是:
for li in lineas:
liNew = "http://" + li
parsedUrl = urlparse.urlparse(liNew)
在这种情况下,错误是增加的“http://”在该行的开始,因为当时正在对剧本之前完成。所以我改变了代码如下:
for li in lineas:
liNew = li
parsedUrl = urlparse.urlparse(liNew)
现在,相同的输入文件中的脚本失败,错误:
IOError: [Errno 24] Too many open files:/path/to/file/being/written/to.txt
随着LINEW = “HTTP://” +李,文件描述符不超过1024的默认限制,但将该行更改为liNew = li将使它们超过8000,为什么?
是的,这是有道理的。我正在重写整个事情,这是一个混乱,我更容易从头开始。 – Juancho 2014-09-27 23:55:54