任何人都可以帮我解决下载多个文件的问题吗?有一段时间,它会阻止我 IOError ,并告诉我连接尝试失败。我尝试使用 time.sleep 函数来随机休息几秒钟,但它没有帮助。当我重新运行代码时,它会再次开始下载文件。任何解决方案?
import urllib
import time
import random
index_list=["index#1","index#2",..."index#n"]
for n in index_list:
u=urllib.urlopen("url_address"+str(n)+".jpg")
data=u.read()
f=open("tm"+str(n)+".jpg","wb")
f.write(data)
t=random.uniform(0,1)*10
print "system sleep time is ", t, " seconds"
time.sleep(t)
答案 0 :(得分:0)
也许您没有正确关闭连接,因此服务器看到太多打开的连接?在循环中读取数据后尝试执行u.close()。
答案 1 :(得分:0)
错误很可能是由于没有正确关闭连接(should I call close() after urllib.urlopen()?)引起的。
关闭也是更好的做法,因此您也应该关闭f
。
您也可以使用Python的with
语句。
import urllib
import time
import random
index_list = ["index#1", "index#2", ..."index#n"]
for n in index_list:
# The str() function call isn't necessary, since it's a list of strings
u = urllib.urlopen("url_address" + n + ".jpg")
data = u.read()
u.close()
with open("tm" + n + ".jpg", "wb") as f:
f.write(data)
t = random.uniform(0, 1) * 10
print "system sleep time is ", t, " seconds"
time.sleep(t)
如果问题仍然存在且您无法提供更多信息,请尝试urllib.urlretrieve