延迟程序直到下载完成

时间:2016-02-15 13:00:23

标签: python time urllib

我有一些代码可以下载内容:

def downloadupdate():

    url = 'http://myurl.com/o/test/Super.zip'
    destination = xbmc.translatePath('somepath.zip')
    urllib.urlretrieve(url,destination)
    time.sleep(40)

Python中有没有办法延迟脚本运行直到下载完成?正如您所看到的,我现在正在使用time.sleep(x)来完成此任务,并且我猜测它需要多长时间。如果可能的话,我宁愿在下载完成后继续编写脚本。

2 个答案:

答案 0 :(得分:1)

你可以使urllib是同步的,这意味着它将阻止程序的其余部分运行,直到下载完成。

import urllib
zip = urllib.urlopen('http://myurl.com/o/test/Super.zip')
with open(xbmc.translatePath('somepath.zip'), "wb") as zipFile:
    zipFile.write(zip.read())
# Download has Completed
print "Downloaded"

答案 1 :(得分:0)

据我所知,urllib.urlretrieve()首先不是异步的,所以你不需要做任何time.sleep()或类似的事情来使脚本阻塞直到检索完成。