Python, basic question: How do I download multiple url's with urllib.request.urlretrieve
<p>I have the following fully functional, working code: </p>

<pre><code>import urllib.request
import zipfile

url = "http://url.com/archive.zip?key=7UCxcuCzFpYeu7tz18JgGZFAAgXQ2sop"
filename = "C:/test/archive.zip"
destinationPath = "C:/test"

urllib.request.urlretrieve(url,filename)
sourceZip = zipfile.ZipFile(filename, 'r')

for name in sourceZip.namelist():
    sourceZip.extract(name, destinationPath)
sourceZip.close()
</code></pre>

<p>It will work perfect a few times, but because the server I am retrieving the file from has some limits, I get this error once I reach that daily limit: </p>

<pre><code>Traceback (most recent call last):
  File "script.py", line 11, in &lt;module&gt;
    urllib.request.urlretrieve(url,filename)
  File "C:\Python32\lib\urllib\request.py", line 150, in urlretrieve
    return _urlopener.retrieve(url, filename, reporthook, data)
  File "C:\Python32\lib\urllib\request.py", line 1591, in retrieve
    block = fp.read(bs)
ValueError: read of closed file
</code></pre>

<p>How do I alter the script, so that it includes a list of multiple url's, instead of one single url, and the script keeps trying to download from the list until one succeeds, and then continues with the unzip. I just need one successful download.</p>

<p>Apologies for being very new to Python but I can't figure this one out. I'm assuming I have to change the variable to look something like this:</p>

<pre><code>url = {
"http://url.com/archive.zip?key=7UCxcuCzFpYeu7tz18JgGZFAAgXQ2soe",
"http://url.com/archive.zip?key=7UCxcuCzFpYeu7tz18JgGZFAAgXQ2sod",
"http://url.com/archive.zip?key=7UCxcuCzFpYeu7tz18JgGZFAAgXQ2soc",
"http://url.com/archive.zip?key=7UCxcuCzFpYeu7tz18JgGZFAAgXQ2sob",
"http://url.com/archive.zip?key=7UCxcuCzFpYeu7tz18JgGZFAAgXQ2soa",
}
</code></pre>

<p>and then changing this line into some sort of loop:</p>

<pre><code>urllib.request.urlretrieve(url,filename)
</code></pre>
