- 论坛徽章:
- 0
|
代码如下,可是结果只能对最后一个文件进行处理,其他文件的处理结果都是空的,应该是最后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 |
|