【发布时间】:2026-01-11 09:25:01
【问题描述】:
我今天偶然发现了一个非常简单的问题。我有一个这样的目录结构:
main_dir
|_A
|_X
|_Y
|_B
|_X
|_Y
|_C
|_X
|_PP
|_QQ
|_Y
|_PP
我想递归地使所有子目录达到X 和Y 所在的级别。我不想在该列表中包含PP 和QQ。
我试过了:
mai_dir = Path("main_dir")
subdirs = [x for x in iter(main_dir("**/*")) if x.is_dir()]
这种方法的问题在于它还包含以下结果:
main_dir/A
main_dir/B
main_dir/C
main_dir/C/X/PP
main_dir/C/Y/QQ
我想排除这些结果。我知道我可以使用if-else 应用另一个for 循环,但我想知道是否有办法避免这里出现循环。
【问题讨论】:
标签: python python-3.x path pathlib