使用 python [重复] 遍历文件夹并查找基于文件扩展名的文件

问题描述 投票:0回答:1

我需要遍历不同的文件夹,并根据文件扩展名检查目录中是否存在某些文件。

然而,在迭代过程中,它还会检查主文件夹中存在的子文件夹,并检查子文件夹中是否存在文件。如何避免这种搜索?

file_format = (".xlsx", ".txt", ".png")
files_path = "D:\\Tools\\Results"
for subdir, dirs, files in os.walk(files_path):
    matching_files = [file for file in files if file.endswith(file_format)]
    if len(matching_files) > 0:
        print(f"\nFiles are present in '{subdir}'")
        for file_name in matching_files:
            print(f"{file_name} - Latest file available")
        else:
            print(f"{file_name} - Latest file not available")

在结果中,我有两个文件夹:Test_Results_1 和 Test_Results_2。我只想在这两个文件夹中检查以文件扩展名结尾的文件。 假设Test_Results_1和Test_Results_2里面有任何名称的文件夹,它不应该进入这些文件夹并执行检查

尝试与子目录进行比较,但仅考虑第一个文件夹 仅更新 Test_Results_1 的结果。不显示 Test_Results_2 文件夹的结果

for subdir, dirs, files in os.walk(sw_files_path):
    matching_files = [file for file in files if file.endswith(file_format)]
    if subdir.lower().endswith(now+"\Test_Results_1"):
        if len(matching_files) > 0:
            print(f"\nFiles are present in '{subdir}'")
            for file_name in matching_files:
                print(f"{file_name} - Latest file available")
            else:
                print(f"{file_name} - Latest file not available")
    if subdir.__contains__(now+"\Test_Results_2"):
        if len(matching_files) > 0:
            print(f"\nFiles are present in '{subdir}'")
            for file_name in matching_files:
                print(f"{file_name} - Latest file available")
            else:
                print(f"{file_name} - Latest file not available")
python directory-structure os.walk
1个回答
0
投票
for subdir, dirs, files in os.walk(files_path):

我有两个文件夹:Test_Results_1 和 Test_Results_2。我只想在这两个文件夹中检查以文件扩展名结尾的文件。

subdir
与一对所需的文件夹名称进行比较。你完成了!


如果你不确定

subdir
的内容 在给定的迭代中,然后在循环中简单地

    print(subdir)

验证它是你认为的那样。

© www.soinside.com 2019 - 2024. All rights reserved.