我在 python 中使用 urllib2
下载图像。这些操作由计时器调用,所以有时它会挂起我的程序。是否可以使用 urllib2
和线程?
我当前的代码:
f = open('local-path', 'wb')
f.write(urllib2.urlopen('web-path').read())
f.close()
那么,如何在新线程中运行这段代码呢?
这是我认为您要求的一个非常基本的示例。是的,正如 RestRisiko 所说,urllib2
是线程安全的,如果这就是您所要求的。
import threading
import urllib2
from time import sleep
def load_img(local_path, web_path):
f = open(local_path, 'wb')
f.write(urllib2.urlopen(web_path).read())
f.close()
local_path = 'foo.txt'
web_path = 'http://www.google.com/'
img_thread = threading.Thread(target=load_img, args=(local_path, web_path))
img_thread.start()
while img_thread.is_alive():
print "doing some other stuff while the thread does its thing"
sleep(1)
img_thread.join()
我是一名优秀的程序员,十分优秀!