请教:怎样找出指定目录下的所有文件,并对每个文件进行处理后转成其他文件输出

请教:怎样找出指定目录下的所有文件,并对每个文件进行处理后转成其他文件输出

代码如下,可是结果只能对最后一个文件进行处理,其他文件的处理结果都是空的,应该是最后for line in lines中lines的问题,可是我尝试了很多方法,也没有能实现,望指点

find.py

import fnmatch, os

def find(pattern, startdir=os.curdir):
    matches = []
    os.path.walk(startdir, findvisitor, (matches, pattern))
    matches.sort()
    return matches

def findvisitor((matches, pattern), thisdir, nameshere):
    for name in nameshere:
        if fnmatch.fnmatch(name, pattern):
            fullpath = os.path.join(thisdir, name)
            matches.append(fullpath)

if __name__ == '__main__':
    import sys
    namepattern="*.eml"
    startdir = sys.argv[1]
    for name in find(namepattern, startdir): print name


///////////////////////////////////////////////////////////////////////////////////
b.py
     
import base64
import zlib
import sys
import find

list = find.find('*.eml',sys.argv[1])
for name in list:
   

    f = file(name, "rb"
    lines = f.readlines()
  
    f.close()
    f = file(name+".txt",'w')
    start = False
    message = ""
    f.close

def dealwith(message):
    print
    print "-----------------------------------------------------------------"
    print zlib.decompress(base64.b64decode(message)[0x48:])
    f.write ("-------------------------------------------------------------\n"
    f.write(zlib.decompress(base64.b64decode(message)[0x48:]))
    f.write ("\n-------------------------------------------------------------\n"
    print "-----------------------------------------------------------------"


for line in lines:
    if "MessageStart" in line:
        start = True
    elif "MessageEnd" in line:
        dealwith(message)
        start = False
        message = ""
    elif start:
        message += line
你的程序中,dealwith和下面的for循环与上面的for循环怎么是同级别的缩近呢?感觉应该在下一层才对。
谢谢,ok了