Загрузить изображение в новую тему - PullRequest
2 голосов
/ 03 апреля 2011

Я загружаю изображение с urllib2 в python. Операции вызываются таймером, поэтому иногда он зависает в моей программе. Можно ли работать с urllib2 и потоками?

Мой текущий код:

f = open('local-path', 'wb')
f.write(urllib2.urlopen('web-path').read())
f.close()

Итак, как запустить этот код в новом потоке?

Ответы [ 2 ]

2 голосов
/ 03 апреля 2011

Вот очень простой пример того, о чем, я думаю, вы просили.И да, как говорит 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()
1 голос
/ 03 апреля 2011

urllib2 является потокобезопасным - для записи.

...