python递归实现在目录以及子目录下,查找包含特定字符的文件

一、先看代码

#!/usr/bin/env python3
#-*-coding=utf-8-*-
'在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径'
__author__='gkm'
import os
def FindFile(path,tagfile):
    for ipath in os.listdir(path):
        fulldir = os.path.join(path,ipath) # 拼接成绝对路径
        if os.path.isfile(fulldir):  # 文件,匹配->打印
            #if tagfile == os.path.split(fulldir)[1]:#查找指定文件
            if tagfile in os.path.split(fulldir)[1]:  # 查找包含了指定关键字的文件
                print(fulldir) #打印的是绝对路径,非相对路径
        if os.path.isdir(fulldir):# 目录,递归
            FindFile(fulldir,tagfile)

path = r'D:\tmp'
tagfile = r'test'
FindFile(path,tagfile)

二、解释一下

1.第7行,如下图所示,os.listdir(path)会把目录下的目录&文件都打印出来

python递归实现在目录以及子目录下,查找包含特定字符的文件_第1张图片

2.解释以下第11行:

os.path.split()函数
语法:os.path.split('PATH')

参数说明:

  1. PATH指一个文件的全路径作为参数:
  2. 如果给出的是一个目录和文件名,则输出路径和文件名
  3. 如果给出的是一个目录名,则输出路径和为空文件名

你可能感兴趣的:(python学习)