python读取文件名包含某字符的文件_Python 在当前和子目录中查找文件名中包含指定字符串的文件...

#! /usr/bin/env python3

# -*- coding: utf-8 -*-

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

#将本文件放到该目录下,才可使用

import os

class SearchClass(object):

def __init__(self):

self.path=''  #相对路径

self.absPath = os.path.abspath('.') #绝对路径

'''

功能:搜索当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件

参数abspath:查找文件的绝对路径

参数father_path:当前操作目录的父目录

思路:利用os.listdir()列出目录和文件L(这里要注意,调用该函数前,需要用os.chdir()工作目录切换到要操作的目录);

然后先输出符合要求的文件;

然后遍历L,找出目录,调用本函数,形成递归调用(要注意工作目录的切换,否则会出错)

'''

def Search(self,abspath = '.',father_path = ''):

os.chdir(abspath) #切换工作目录到abspath指定目录,也就是当前工作目录

L = os.listdir('.') #列出本目录下的文件和文件夹

#print(L)

for v in L:

if os.path.isfile(v) and 'file' in v:  #将本目录下的符合条件文件输出

print('%s%s%s' % (self.path,os.sep,v))

for m in L:

#os.chdir(self.absPath)

if os.path.isdir(m):                   #如果是目录

tmp_path = self.path

self.path = os.path.join(self.path,m) #更新path

self.absPath = os.path.join(self.absPath,m) #更新absPath

#print(self.absPath)

self.Search(self.absPath,tmp_path)         #递归调用

os.chdir(abspath) #因为在Search里面会切换目录所以要切换回来

self.absPath = os.path.abspath('..') #在这里要将absPath和path置为当前目录的父目录

self.path = father_path

os.chdir(self.absPath) #切换到上一层目录

#print(self.absPath)

#test

f=SearchClass()

f.Search()

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值