一連のファイルをダウンロードするための簡単なPython(3.2)スクリプトを作成しました。ジョブは完了しますが、ファイルのダウンロードが開始される前に、tryブロックの前にある最初のprintステートメントは実行されません。「Downloading1...」が表示されると思っていたので、数分待ってから「SUCCESS!」と表示されます。または「失敗!」その後。ただし、これはすべて、ファイルがダウンロードされた後に同時に発生します。それでも正しい順序で印刷されます(つまり、「1をダウンロードしています...成功しました!」)が、なぜハングしているのか理解できません。
from urllib import request
for i in range(1,35):
url = "http://example.com/" + str(i) + ".mp4"
print("Downloading " + str(i) + "...", end='') #this doesn't happen until after the try
try:
resp = request.urlopen(url)
local = open(str(i) + '.mp4', 'wb')
local.write(resp.read())
local.close()
print("SUCCESS!")
except:
print("FAILURE!")