平台: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 ')

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

参考文献

  1. 官网,https://www.python.org/,文档,https://docs.python.org/3/(IDLE help);
  2. Python绝对简明教程,http://wiki.woodpecker.org.cn/moin/PyAbsolutelyZipManual
  3. 简明Python教程,http://woodpecker.org.cn/abyteofpython_cn/chinese/

Python实现对文件夹内文本文件递归查找的更多相关文章

  1. Python实现删除文件夹内规定时间内的文件

    需求:  在测试程序的时候,程序会大批量的上传文件到规定目录,然后文件根据日期DAY新建文件夹存放,比如28号上传的文件放到  .../28/* 内,29号上传的文件放到 .../29/*内,因为需要 ...

  2. Python批量修改文件夹内所有json文件中部分内容

    #coding=utf-8 import os import json #获取目标文件夹的路径 filedir = os.getcwd()+'/ceshi' #获取文件夹中的文件名称列表 filena ...

  3. python实现将文件夹内所有txt文件合并成一个文件

    新建一个文件夹命名为yuliao,把所有txt文件放进去就ok啦!注意路径中‘/’,windows下路径不是这样. #coding=utf-8  import os #获取目标文件夹的路径 filed ...

  4. 用Python来实现列举某个文件夹内所有的文件列表

    用Python来实现列举某个文件夹内所有的文件列表.吾八哥我动手写代码之前分析了下,遍历一个文件夹,肯定是需要用到os模块了,查阅模块帮助信息,可知os.listdir()方法可以列举某个文件夹内的所 ...

  5. ftp下载目录下所有文件及文件夹内(递归)

    ftp下载目录下所有文件及文件夹内(递归)   /// <summary> /// ftp文件上传.下载操作类 /// </summary> public class FTPH ...

  6. Python win32com模块 合并文件夹内多个docx文件为一个docx

    Python win32com模块 合并文件夹内多个docx文件为一个docx #!/usr/bin/env python # -*- coding: utf-8 -*- from win32com. ...

  7. python对文件夹内文件去重

    昨天无聊写了一个百度图片爬虫,测试了一下搜索"斗图".一下给我下了3000多个图片,关键是有一半以上重复的.what a fuck program ! 好吧,今天写一个文件去重功能 ...

  8. 通过Python计算一个文件夹大小

    在进行计算一个文件夹内容大小的时候,我们要考虑文件夹内都有什么内容,可能都是一个一个的单文件,也有可能都是子文件夹,或者二者都有,既然要计算整个文件夹的大小,我们当然要计算每一个文件的大小以及每一个子 ...

  9. Linux如何修改文件/文件夹内所有文件的权限

    一.修改文件权限 修改文件权限前,需要了解一下权限中的”rwx”与数字的对应关系,其中r=4,w=2,x=1. 例如:”drwxr-xr-x”,第一个”d”是代表文件夹,这里不用考虑,后面九个字符,每 ...

随机推荐

  1. UIDatePicker和UIToolbar的使用

    功能,用UIDatePicker 和UIToolbar 实现点击文本框弹出日期选择空间. 点击确定按钮获取时间显示到对应的Text Field里面,点击取消按钮隐藏键盘. 1.创建textField控 ...

  2. PHP语言基础简单整理

    1.开始结束标记<? ... ?> 2.定义变量:$变量名 例: $str="锦清笋";不需要指明数据类型 3.输出语句:(1)echo "hello wor ...

  3. Javascript练习

    1.时钟 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  4. jquery tab 插件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. Andriod SDK Manager 安装问题解决方法

    (一)AndriodSDKManager无法自动下载安装包 无法访问dl-ssl-google.com 只需在hosts文件中增加 203.208.49.162       dl-ssl.google ...

  6. BSS段 data段 text段 堆heap 和 栈stack

    BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配.   数 ...

  7. ios系统crash文件分析

    分析crash文件必备条件:crash文件的uuid,app的uuid,dsym文件的uuid必须一致 1> crash文件的uuid为Binary Images:0x4000 - 0x1173 ...

  8. Y+的一些讨论

    一.关于 fluent计算时壁面函数法和网格的关系,还有一个小问题 1:各位用 fluent的同仁和高手们,我想要比较好的使用 fluent软件,最重要的就是要学好理 论,在这里我想请教各位一个问题, ...

  9. 如何修复Outlook 2007源文件.PST及性能优化补丁

    kb961752 微软发布了改善 Outlook 2007 个人数据文件性能的补丁,该补丁未来将会集成于 SP2 中,但是现在对于SP1用户可以提前得到它.   获取地址: http://suppor ...

  10. restful

    根据名称对应 相当于换了别名(很无聊)