Python扫描指定文件夹下(包含子文件夹)的文件

扫描指定文件夹下的文件。或者匹配指定后缀和前缀的函数。

假设要扫描指定文件夹下的文件,包含子文件夹,调用scan_files("/export/home/test/")

假设要扫描指定文件夹下的特定后缀的文件(比方jar包),包含子文件夹,调用scan_files("/export/home/test/", postfix=".jar")

假设要扫描指定文件夹下的特定前缀的文件(比方test_xxx.py)。包含子文件夹,调用scan_files("/export/home/test/", prefix="test_")

#!/usr/bin/env python
#coding=utf-8

import os

def scan_files(directory,prefix=None,postfix=None):
    files_list=[]
    
    for root, sub_dirs, files in os.walk(directory):
        for special_file in files:
            if postfix:
                if special_file.endswith(postfix):
                    files_list.append(os.path.join(root,special_file))
            elif prefix:
                if special_file.startswith(prefix):
                    files_list.append(os.path.join(root,special_file))
            else:
                files_list.append(os.path.join(root,special_file))
                          
    return files_list