在目录及其子目录下寻找匹配的文件的python实现

目录及其子目录下寻找匹配的文件的python实现

python中在目录及其子目录下寻找匹配的文件,这是一个小练习

题目如下:

(1)编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径

代码如下:

#寻找指定目录下(包含子目录)中的文件名含有指定字符串的文件,并打印出其相对路径
#coding:utf-8
import os
def my_find(s,root=‘.‘):
    dirs=[]#用来保存目录
    matchs=[]#用来保存匹配字符串的文件
    for currentName in os.listdir(root):
        addRootName=os.path.join(root,currentName)
        if os.path.isdir(addRootName):
            dirs.append(addRootName)
        elif os.path.isfile(addRootName) and s in addRootName:
            matchs.append(addRootName)
    for match in matchs:
        print(match)

    for dir in dirs:
        my_find(s,dir)

my_find(‘test‘,‘.‘)

上面是以相对路径输入符合条件的文件。

如果我们想以绝对路径来输出符合条件的文件。则只需要将程序中的

addRootName=os.path.join(root,currentName)

换成下面这条语句即可

addRootName=os.path.join(os.path.abspath(root),currentName)

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-11 09:53:03

在目录及其子目录下寻找匹配的文件的python实现的相关文章

Linux复制指定目录及子目录下特定类型的文件

主要参考这个: http://www.2cto.com/os/201208/144996.html 拷贝一些内容就是: 首先建立一个用于测试的目录 可见,目录中主要包含用于测试的*.txt文件和用于充当炮灰的*.tes文件 目标是保持当前的目录结构,只把txt文件复制出来 方法一:当不需要的文件类型较为单一时,可以通过完全复制然后删除指定类型的文件完成 Step1 使用命令 cp -r test/ test2 将测试目录test下所有内容完全复制到test2. Step2 组合使用find及xa

删除一个目录及其子目录下的所有.svn文件

今天建立svn,加入代码,发现这些个文件夹中竟然已经有.svn文件夹,也就是它以前使用过svn, 这下就有点麻烦,在全新的svn里,这些.svn需要删除,又不可能一个一个手工去删除 网上翻了一下,发现一大段代码,很不整洁的代码,不想用,直接写了个小函数   代码如下: 直接调用即可: scanfiles('c:\wingsbook'); function scanfiles($pfile){ $dirs=scandir($pfile); foreach($dirs as $file){ $tmp

php读取目录及子目录下所有文件名的方法

为了便于操作,先将php读取目录及子目录下所有文件名的方法封装成一个类. // +---------------------------------------------------------------------- // | lidequan [ I CAN DO IT JUST WORK HARD ] // +---------------------------------------------------------------------- // | Copyright (c)

批处理删除指定目录及子目录下所有.svn目录

Java代码 @REM 根据用户输入,删除指定目录及子目录下所有.svn目录 @echo off :inputPath set DESTINATION_PATH=: set /p DESTINATION_PATH="Please input the root directory need to clear the svn folders , press enter !  :" if not exist %DESTINATION_PATH% ( @echo [Warn] The inpu

打印 指定目录下和子目录下的的所有.java文件的路径. (使用FileFilter过滤器)

1 package test; 2 /* 3 * 打印 指定目录下和子目录下的的所有.java文件的路径. 4 * */ 5 import java.io.*; 6 import java.util.*; 7 8 public class Test14 9 { 10 public static void main(String[] args) 11 { 12 File dir = new File("C:\\Users\\Dell\\Workspaces\\MyEclipse 10")

Java 遍历指定目录及子目录下的文件

/** * 遍历指定目录及子目录下的文件 * * @author testcs_dn * @date 2014年12月12日下午2:33:49 * @param file 要遍历的指定目录 * @param collector 符合条件的结果添加到此List<File>中 * @param pathInclude 路径中包含指定的字符串 * @param fileNameInclude 文件名(不包含扩展名)中包含指定的字符串 * @param extnEquals 文件扩展名为指定字符串 *

用rm递归递归删除子目录下所有.o后缀文件

find . -name "*.o"  | xargs rm -f 可以通过管道命令来操作,先find出主目录 下想删除的文件,然后通过“xargs”这个构造参数列表并运行命令. find named/ -name *.bak | xargs rm -f 以下是转的文件 Linux文件查找命令find,xargs详述 总结:zhy2111314来自:LinuxSir.Org整理:北南南北摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易

Python os模块实例之遍历目录及子目录指定扩展名的文件

需求:在该目录下有很多子目录(如下图,截图了部分),现要从该目录和所有子目录下找到所有扩展名为.meta的文件,并获取文件中第二行guid的值(': '后面的),然后将所有guid的值输出到另一文件中 .meta文件截图: 思路: 遍历当前目录的子目录,如果是文件并且扩展名为.meta,获取guid,写入到guid.txt:如果是子目录,则遍历子目录下的文件. 方法一: #!usr/bin/env python # -*- coding: utf-8 -*- import os outfile

把/oldboy目录及子目录下所有以扩展名.sh结尾的文件中包含oldboy的字符串全部替换成oldgirltou

方法1  find  /oldboy -type f -name '*.sh'|xargs sed -i 's#oldboy#oldgirl#g' find /oldboy -type f -name '*.sh'|xargs  cat 方法2  sed  -i  's#oldgirl#oldboy#g'   `find  /oldboy  -type f -name "*.sh"`    `时tab上面的键盘  表示先执行那一部分