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

Python实现对文件夹内文本文件递归查找

2014-03-31 13:17 471 查看
平台:Win7 64 bit,IDLE Python 3.4.0

经常有这样的需求:在一个文本文件里查找特定字符串,这很好实现,用任何文本查看工具几乎都可以做到。而有的时候,想查找一个文件夹下的所有文本文件(特定后缀),我就遇到了这样的问题:想找到Blender的源代码中关于SPH的实现代码。于是写了下面的简单程序:

#!/usr/bin/env python3

import os

def Search(rootDir, suffixes, arg):
for lists in os.listdir(rootDir):
path = os.path.join(rootDir, lists)
if os.path.isfile(path):
if path.endswith(suffixes):
try:
with open(path, encoding='utf_8') as fh:
lineNum = 0
for line in fh:
lineNum += 1
if arg in line:
print(lineNum, ':', path, '\n', line)
fh.close()
except:
print('error: ', path, '\n')
if os.path.isdir(path):
Search(path, suffixes, arg)

Search(r'D:\blender-2.70', ('.c','.cpp','.h','.hpp'), 'SPH ')


程序虽小,但很实用,运行结果如下:



参考文献

官网,https://www.python.org/,文档,https://docs.python.org/3/(IDLE help);

Python绝对简明教程,http://wiki.woodpecker.org.cn/moin/PyAbsolutelyZipManual

简明Python教程,http://woodpecker.org.cn/abyteofpython_cn/chinese/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: