Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29353708
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Python/Ruby

2010-04-04 23:41:00

想法:
   在执行findall()的时候 让一个子进程去执行。父进程一控制它!
但是这样并不可取呀。遍历一千万个文件不可能这样处理的!
不可能一直开子线程然后又杀掉不可取!
import os, stat,random

def WalkDir( dir, dir_callback = None, file_callback = None ):
    for root, dirs, files in os.walk(dir):
        for f in files:
            file_path = os.path.join(root, f)
            if file_callback: file_callback( file_path )
            for d in dirs:
                dir_path = os.path.join(root, d)
                if dir_callback: dir_callback( dir_path )



def DeleteDir( dir ):
    print "path"
        #os.rmdir( dir )
def DeleteFile( file ):
    try:
        indexs = random.randint(1,3)
        if indexs == 1:globals.lists1.append(file)
        elif indexs == 2:globals.lists2.append(file)
        elif indexs == 3:globals.lists3.append(file)
        else:pass
    except WindowsError, e:
        pass




import threading,time

import globals

class MyThread(threading.Thread):
    def __init__(self,threadname):
        threading.Thread.__init__(self, name=threadname)
    def run(self):
        WalkDir( os.getcwd(), DeleteDir, DeleteFile )


class MyThreads(threading.Thread):
    def __init__(self,threadname):
        threading.Thread.__init__(self, name=threadname)
    def run(self):
        if self.getName() == 1:

 

if __name__ == '__main__':
    obj = MyThread("this is my thread")
    obj.start()
   
    for i in xrange(1,4):
        obj = MyThreads(i)
        obj.start()
   

阅读(682) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~