python-3.x 使用地球仪扫描所有目录和过滤文件

6jjcrrmo  于 2023-04-22  发布在  Python
关注(0)|答案(1)|浏览(95)

有一个函数可以搜索目录中的所有文件,我如何将它应用于它,使它只返回我需要的文件?

def scan_recursive(path):
    with os.scandir(path) as it:
        for entry in it:
            if entry.is_file():
                yield path + "/" + entry.name
            else:
                yield from scan_recursive(entry.path)

for file_path in scan_recursive('C:/test/1'):
    x.append(file_path)

例如,只有近似名称为“2018-*-photo.jpg”的文件
我读到了关于“地球仪.globe”的可能性,但不能正确地应用它们
我这样做了,但我不明白我怎么能把结果写到append list里没有帮助

def scan_recursive(directory, path):
    # x = []
    for pathes in path:
        files = Path(directory).glob(f'**/{pathes}')
        for file in files:
            if file.is_file():
                print(file)
oxiaedzo

oxiaedzo1#

使用pathlib库:

pathlib.Path("your_path").glob("2018-*-photo.jpg")

或者如果你也想在子目录中保存文件:

pathlib.Path("your_path").glob("**/2018-*-photo.jpg")

相关问题