批量查寻多个文件中匹配的位置

批量查找多个文件中匹配的位置

许久未写python代码了,都生疏了。一定要多练啊。。

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import os,re
def listDir(path):
    li=os.listdir(path)
    return li;
s=raw_input("please input the directory:")
mPattern=raw_input("please input the pattern:")
if len(s)==0:
    s=u"E:\\实验\\两阶段"
os.chdir(s)
li=listDir(s)
#print listDir(s)
#print os.getcwd().decode('gb2312')
#print li
save_dir="c:\\%s.txt" % mPattern
out=open(save_dir,"w")
for l in li:
    if not os.path.isfile(l):
        continue;
    f=open(l.encode("utf-8"))
    cnt=0;
    lineno=1
    for p in f.readlines():
        r=re.findall(mPattern,p)
        if len(r)>0:
            if cnt==0:
                 print "[",l.decode("gb2312"),"]"
                 out.write("[ %s ]\n" % l)
            cnt=cnt+1
            print lineno ,":", p.decode("gb2312")
            out.write("%d:%s\n" % (lineno,p))
        lineno=lineno+1
    f.close()
out.close()