1 、环境:目录结构如下,我想排除 D:\目录\目录 1 及其子目录,
D:\目录
├─目录 1 (排除,及其子目录)
│ ├─目录 1
│ ├─目录 2
│ └─目录 3
├─目录 2 (保留,及其子目录)
│ ├─目录 1
│ ├─目录 2
│ └─目录 3
└─目录 3 (保留,及其子目录)
├─目录 1
├─目录 2
└─目录 3
生成所有目录路径列表,想通过 if in 排除某些目录
path = r"D:\目录"
allDir = []
exculdeDir=[r"D:\目录\目录 1"]
for root, dirs, files in os.walk(path):
for i in dirs:
allDir.append(os.path.join(root, i))
for dirpath in allDir:
for exculdepath in exculdeDir:
if exculdepath in dirpath:
allDir.remove(dirpath)
for i in allDir:
print(i+" res")
2 、问题: 通过这种方式,排除了 D:\目录\目录 1 ; D:\目录\目录 1\目录 1 ; D:\目录\目录 1\目录 3 ,但是不排除 D:\目录\目录 1\目录 2 ,不知道是什么原因?