您的位置:首页 > 编程语言 > Python开发

Python os.path.walk遍历文件,搜索文件里面的内容

2013-01-05 17:08 696 查看
用os.path.walk来遍历文件,并且搜索文件里面的内容。

import os, sys
listonly = False
skipexts = ['.gif', '.exe', '.pyc', '.o', '.a','.dll','.lib','.pdb','.mdb']        # ignore binary files

def visitfile(fname, searchKey):                       # for each non-dir file
    global fcount, vcount
    try:
        if not listonly:
                if os.path.splitext(fname)[1] in skipexts:
                        pass
                elif open(fname).read().find(searchKey) != -1:
                        print'%s has %s' % (fname, searchKey)
                        fcount += 1
    except: pass
    vcount += 1

def visitor(args, directoryName,filesInDirectory):     # called for each dir 
    for fname in filesInDirectory:
        fpath = os.path.join(directoryName, fname)
        if not os.path.isdir(fpath):
            visitfile(fpath,args)

def searcher(startdir, searchkey):
    global fcount, vcount
    fcount = vcount = 0
    os.path.walk(startdir, visitor, searchkey)

if __name__ == '__main__':
    root=raw_input("type root directory:")
    key=raw_input("type key:")
    searcher(root,key)
    print 'Found in %d files, visited %d' % (fcount, vcount)


运行结果如下所示:

sina@ubuntu:~/work/python$ python search_content.py
type root directory:/home/sina/work/python
type key:sound
/home/sina/work/python/pygame.CHM has sound
/home/sina/work/python/game.py has sound
Found in 2 files, visited 90
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: