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 ,不知道是什么原因?
