需求:给一个大的路径,想要筛选包含特定文件的文件夹目录,文件夹下子文件夹内的东西不做检索。
import os
from natsort import natsorted
g = os.walk(r'g:\test')
# 获取所有文件及子文件
List = []
for path,dir_list,file_list in g:
dir_list = natsorted(dir_list)
for dir_name in dir_list:
List.append(os.path.join(path, dir_name))
# print(List)
print(len(List))
# 筛选下一级目录包含特定文件的文件夹(没有遍历子文件夹)
list2 = []
for i in List:
list = os.listdir(i)
for x in range(0,len(list)):
path = os.path.join(i,list[x])
if '.dcm' in list[x].lower():
if i not in list2:
list2.append(i)
print(len(list2))
# 目录下子文件获取
# rootdir = r'G:\test\EXACT_airway'
# list = os.listdir(rootdir)
# for i in range(0,len(list)):
# path = os.path.join(rootdir,list[i])
# print(path)
# 判断'.dcm'文件
# List2 = []
# for i in List:
# for dirName, subdirList, fileList in sorted(os.walk(i)):
# fileList = natsorted(fileList)
# for filename in fileList:
# if ".dcm" in filename.lower(): # 判断文件是否为dicom文件
# if (i not in List2):
# List2.append(i)
# 去重
# List3 = []
#
# for element in list2:
# if (element not in List3):
# List3.append(element)
#
# print(len(List3))