Python:线程不工作

时间:2013-12-03 19:04:36

标签: python

我正在尝试提出一个python程序,允许用户通过并行进程下载Web图像。以下是代码:

from threading import Thread
from uuid import uuid4
import urllib
import re

def concurrent_run(fun, j):
   for i in j:
       Thread(target=fn, args=(i)).start()

def find_image(i):
   newpath = '/Users/*******/Desktop'+str(uuid4())+".jpg" 
   if not os.path.exists(newpath): os.makedirs(newpath)
   f=open(newpath,'wb')
   f.write(from_page(i))
   f.close()

def all_images(i):
   images = re.findall('img=',i)
   return [images[i] for i in xrange(0,len(images))]

def read_page(u):
   return urllib.urlopen(u).read()

concurrent_run(find_image, all_images(read_page('http://www.google.com')))

......似乎什么都没发生?有人可以指出我出错的地方吗?

谢谢

1 个答案:

答案 0 :(得分:4)

  • fn与参数名称fun

    不匹配
    def concurrent_run(fun, j):
       #               ^^^
       for i in j:
           Thread(target=fn, args=(i)).start()
           #             ^^       ^^^
    
  • args应该是一个元组:args=(i,)