2013-12-03 59 views
-2

我想要一个python程序,允许用户通过并行进程下载web图像。以下是代码:Python:线程不工作

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'))) 

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

谢谢

+0

你能项目列表的算法中你正试图实施? – Giupo

回答

4
  • fn不匹配参数名fun

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

+0

列出的另一个小问题:我认为他在find_image函数中缺少一个“/”为newpath创建字符串;那么为什么os.makedirs呢? ... – Giupo