python 遍历目录下所有文件

遍历目录获取所有文件和子目录

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import glob

def get_file_path(root_path,file_list,dir_list):
    #获取该目录下所有的文件名称和目录名称
    dir_or_files = os.listdir(root_path)
    for dir_file in dir_or_files:
        #获取目录或者文件的路径
        dir_file_path = os.path.join(root_path,dir_file)
        #判断该路径为文件还是路径
        if os.path.isdir(dir_file_path):
            dir_list.append(dir_file_path)
            #递归获取所有文件和目录的路径
            get_file_path(dir_file_path,file_list,dir_list)
        else:
            file_list.append(dir_file_path)

# 获取指定目录指定文件
def get_files_from_dir(dir, wildcard):
    file_names = []
    exts = wildcard.split(" ")
    files = os.listdir(dir)
    for name in files:
        fullname = os.path.join(dir, name)
        if(os.path.isdir(fullname)):
            # 遍历子路径,如果需要请修改pathStr获取方式,否者子路径的图片打开会有问题
            # file_names += get_files_from_dir(fullname, wildcard)
            pass
        else:
            for ext in exts:
                if(name.endswith(ext)):
                    file_names.append(name)
                    break
    return file_names

# 获取指定目录指定文件
def get_file(path='./', condition='*'):
    '''
    :param path: 查找路径, 默认查找当前目录
    :param condition: 查找条件,”*”匹配0个或多个字符;”?”匹配单个字符;”[]”匹配指定范围内的字符,如:[0-9]匹配数字
    :return: 返回找到的结果
    '''
    files = []
    for file in glob.glob(path + "/" +condition):
        files.append(file)
    return files
 
if __name__ == "__main__":
    #根目录路径
    root_path = r"./test"
    files = []
    dirs= []
    get_file_path(root_path, files, dirs)
    print(files)
    print(dirs)

	get_file()	#获取当前目录所有文件
	get_file(root_path, '*.png')	#获取目录下的所有png文件
	get_file(root_path, '*[0-9].png')	#获取目录下的带数字的png文件
	get_files_from_dir(root_path, '.png .jpg') #获取目录下的带以.png和.jpg结尾文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值