python查找文件夹对应的文件

本文介绍如何使用Python查找指定目录下的所有文件,通过两种方法实现:一种利用正则表达式匹配特定类型的文件,另一种使用os模块的walk函数进行递归搜索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python 查找文件夹下所有文件

参考网站:http://blog.youkuaiyun.com/kiki113/article/details/4311095

def find_file_by_pattern(pattern='.*', base=".", circle=True):
    '''查找给定文件夹下面所有 '''
    re_file = re.compile(pattern)
    if base == ".":
        base = os.getcwd()
        
    final_file_list = []
    print base
    cur_list = os.listdir(base)
    for item in cur_list:
        if item == ".svn":
            continue
        
        full_path = os.path.join(base, item)
        if full_path.endswith(".doc") or /
            full_path.endswith(".bmp") or /
            full_path.endswith(".wpt") or /
            full_path.endswith(".dot"):
            continue
            
        # print full_path
        bfile = os.path.isfile(item)
        if os.path.isfile(full_path):
           if re_file.search(full_path):
               final_file_list.append(full_path)
        else:
           final_file_list += find_file_by_pattern(pattern, full_path)
    return final_file_list

python查找目录下指定文件

参考网站:http://simon-zzm.blog.163.com/blog/static/88809522201148102914827/

   导入os模块使用walk函数。walk函数比较简单,迭代返回元组,一个元组有三个元
素(遍历的路径、当前遍历路径下的目录、当前遍历目录下的文件名)。

   建立一个textfind目录。建立目录1,目录1下有目录2和文件1.txt,在目录2下有
3目录、33目录和2.txt,在目录3下有3.txt。
   测试结果:
>>> import os
>>> a=os.walk(r'testfind/')
>>> for i in a:
...     print i
...
('testfind/', ['1'], [])
('testfind/1', ['2'], ['1.txt'])
('testfind/1/2', ['3', '33'], ['2.txt'])
('testfind/1/2/3', [], ['3.txt'])
('testfind/1/2/33', [], [])

   偷懒的方法用命令find比较简单。使用python如果要找指定文件,还需要用正则匹
配一下。

import re
import os
find_file=re.compile(r".txt$")
find_path=r"./testfind"
find_walk=os.walk(find_path)
for path,dirs,files in find_walk:
        for file in files:
                if find_file.search(file):
                    print("%s"%path+"/"+file)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值