我正在使用Python 3,需要使用Pathlib对文件夹执行一些操作,并检查它们是否为文件夹。
我要执行的操作是这样的:
from pathlib import Path
source_path = Path("path_directory_string")
for a in source_path.iterdir():
if a.is_dir():
for b in a.iterdir():
if b.is_dir():
for c in b.iterdir():
if c.is_dir():
# do something
我的问题是,是否有更好的方法可以做到这一点。回顾过去的问题,看来最好的方法是使用Pahtlib的方法glob。因此,由于我具有三个层次的深度,因此我尝试了以下方法:
for a in source_path.glob("**/**/**"):
if a.is_dir():
print(a)
,它几乎可以正常工作。问题在于,这不仅返回最深层的文件夹,还返回其父文件夹。在格式化全局模式时是否犯了一些错误?还是只列出deepest_level元素的更好方法?
答案 0 :(得分:3)
我想你想要
for a in source_path.glob("*/*/*"):
if a.is_dir():
print(a)
从文档中了解:**
模式的意思是“此目录和所有子目录(递归)”,而一个*
是文本通配符。