You should use the os.walk
function for going through your files. Use string methods or regex for filtering out the results. Check http://docs.python.org/library/os.html for informations about how to use os.walk.
import os
import re
def findfiles(path, regex):
regObj = re.compile(regex)
res = []
for root, dirs, fnames in os.walk(path):
for fname in fnames:
if regObj.match(fname):
res.append(os.path.join(root, fname))
return res
print findfiles('.', r'my?(reg|ex)')
Now for the grep part, you can loop over the file with the open
function
def grep(filepath, regex):
regObj = re.compile(regex)
res = []
with open(filepath) as f:
for line in f:
if regObj.match(line):
res.append(line)
return res
If you want to get the line numbers, you may want to look into the enumerate
function.
edited to add the grep function
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…