我需要遍历不同的文件夹,并根据文件扩展名检查目录中是否存在某些文件。
然而,在迭代过程中,它还会检查主文件夹中存在的子文件夹,并检查子文件夹中是否存在文件。如何避免这种搜索?
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")
for subdir, dirs, files in os.walk(files_path):
我有两个文件夹:Test_Results_1 和 Test_Results_2。我只想在这两个文件夹中检查以文件扩展名结尾的文件。
将
subdir
与一对所需的文件夹名称进行比较。你完成了!
如果你不确定
subdir
的内容
在给定的迭代中,然后在循环中简单地
print(subdir)
验证它是你认为的那样。