遍历根目录下包含特定字符串的文件

import os
import re

name = raw_input("please input the name: ")
for dirpath, dirnames, filenames in os.walk(os.path.join(‘/home/xiao‘, name), True, None):
    for filename in filenames:
        if re.search(‘test‘, filename):
        # if ‘test‘ in filename:
            print os.path.join(dirpath, filename)

函数声明:os.walk(top,topdown=True,onerror=None)

(1)参数top表示需要遍历的顶级目录的路径。

(2)参数topdown的默认值是“True”表示首先返回顶级目录下的文件,然后再遍历子目录中的文件。当topdown的值为"False"时,表示先遍历子目录中的文件,然后再返回顶级目录下的文件。

(3)参数onerror默认值为"None",表示忽略文件遍历时的错误。如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。

os.walk这个方法返回的是一个三元tupple(dirpath, dirnames, filenames),

其中第一个为起始路径,

第二个为起始路径下的文件夹,

第三个是起始路径下的文件. dirpath是一个string,代表目录的路径, dirnames是一个list,包含了dirpath下所有子目录的名字, filenames是一个list,包含了非目录文件的名字.这些名字不包含路径信息,如果需要得到全路径,需要使用 os.path.join(dirpath, name).

import os
import re

def searchAndPrint(path):
    findFiles = [f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f)) and re.search(‘test‘, f)]
    for f in findFiles:
        print os.path.join(path, f)
    subDirs = [d for d in os.listdir(path) if os.path.isdir(os.path.join(path, d))]
    for d in subDirs:
        searchAndPrint(os.path.join(path, d))

name = raw_input("please input the name: ")
searchAndPrint(os.path.join(‘/home/xiao‘, name))

  

时间: 2024-08-10 21:33:24

遍历根目录下包含特定字符串的文件的相关文章

linux下查找某个目录下包含某个字符串的文件

有时候要找一些字符串,但是又不知道在哪个文件,只记得一些字符串 那么如何在linux下寻找包含某段文字的文件呢? 强大的find命令可以帮你完成不可能的任务. 比如我只记得我的程序里包含唯一的字符串“SMS_ISSEND”,于是: 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri “SMS_ISSEND” 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri “SMS_ISSEND” -l

查询目录下包含特定字符的文件

sudo find /home/q/www/*/conf/server.xml|xargs sudo grep -ri "7777" –l 参考: http://man.linuxde.net/

正则表达式不包含特定字符串

概述 做日志分析工作的经常需要跟成千上万的日志条目打交道,为了在庞大的数据量中找到特定模式的数据,常常需要编写很多复杂的正则表达式.例如枚举出日志文件中不包含某个特定字符串的条目,找出不以某个特定字符串打头的条目,等等. 使用否定式前瞻 正则表达式中有前瞻(Lookahead)和后顾(Lookbehind)的概念,这两个术语非常形象的描述了正则引擎的匹配行为.需要注意一点,正则表达式中的前和后和我们一般理解的前后有点不同.一段文本,我们一般习惯把文本开头的方向称作“前面”,文本末尾方向称为“后面

列出当前目录所有包含指定字符串的文件

1.linux查找目录下的所有文件中是否含有某个字符串: find . -type f |xargs grep helloworld 2.列出当前目录所有包含指定字符串的文件: find . |xargs grep -ri "IBM" -l

Linux查找含有特定字符串的文件

Linux查找含有特定字符串的文件命令为grep.以下为详细的使用方法 grep [OPTIONS] PATTERN [FILE...] #实例:递归查找当前文件夹下所有含有test的文件,并显示行号 grep -rn "test" * -r 递归查找 -n 显示行号 -i 忽略大小写 -w 只匹配整个单词,而不是字符串的字部分(如pattern为"test", 不匹配"test1"或"atest") -C num 显示匹配到

Android gen根目录下自动生成的R文件指向问题

今天才弄明白,原来在调用vitamio包的时候使用它们的R文件,然后在迁入广告的时候出现了问题,但是瞎胡搞半天后把问题解决了,可没有明白这是什么原因. 今天更新应用又出现了相同的情况,无意中打开了gen的根目录妈蛋!发现里面的报名根本就不是我现在应用的包名.而是调用的那个工程的包名!这下终于找到根本原因了,但是怎么解决呢???----------->修改包名呗~~~~~~~可是你改了它又会自动生成了原来的那个,--------------后来终于发现原来这个R文件的包名适合manifest文件中

shell判断变量内容里包含特定字符串

shell判断变量内容里包含特定字符串 shell [ "$str" =~ "IEEE80211" ] && echo "it contains IEEE80211" [email protected] 2017-5-11

linux 查询目录下包含关键字的所有文件

linux查找目录下的所有文件中是否含有某个字符串 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式    (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/.*.?等)组成.   (2)基本元字符集及其含义       ^

Python正则匹配递归获得给出目录下的特定类型的文件小技巧

需求是酱的: 输入一个目录,这个目录包含检测目录的必备信息但不准确需要获得后加工一下,如给出目录:C:\Program Files\Common Files\DESIGNER,需要检测的目录是:C:\Program Files\Common Files\System,即从给出的目录中获取前面的信息,后面的补上的目录(System)是指定的.从E:\res\tmp目录中检测xml文件,返回xml文件的目录 代码如下: 1 import os 2 import re 3 pathlist = []