想法:
在执行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) |