利用python快速查找某个路径下的所有指定格式文件

Source

又是后下载好数据,意见很头疼的事情就来了——洗数据
而洗数据的第一件头疼的事情又来了——读取数据

有人会问,这读取数据有啥困难的?
就一两个文件当然没问题了,可是你要是down下来的是一堆数据,几十个几百个file,还是分了好几个目录的,你这咋办呢?

可以用python简单地写一个脚本:

def FindAllSuffix(path: str, suffix: str, verbose: bool = False) -> list:
    ''' find all files have specific suffix under the path

    :param path: target path
    :param suffix: file suffix. e.g. ".json"/"json"
    :param verbose: whether print the found path
    :return: a list contain all corresponding file path (relative path)
    '''
    result = []
    if not suffix.startswith("."):
        suffix = "." + suffix
    for root, dirs, files in os.walk(path, topdown=False):
        # print(root, dirs, files)
        for file in files:
            if suffix in file:
                file_path = os.path.join(root, file)
                result.append(file_path)
                if verbose:
                    print(file_path)

    return result

只要指定路径path,和·suffix·也就是文件后缀,比方说我现在要加载所有data/下的json文件,那么就可以用下面这段代码,不管你data/下面有几个分支文件夹,有多少杂七杂八文件,全给你找出来。