如何用Python的pathlib模块仅打印文件夹中的子文件夹内容?
仅打印文件夹的解决方案
你可以通过在循环中加入is_dir()的条件判断来筛选出文件夹,之前没生效应该是没把判断逻辑正确整合到代码里。下面是修正后的代码:
import pathlib rd = pathlib.Path(r"E:\Location\MainFolder") # 用原始字符串避免Windows路径的转义问题,也可将反斜杠改为双反斜杠 for td in rd.iterdir(): if td.is_dir(): # 仅当当前路径为文件夹时执行打印 print(td)
另外还有几种更简洁的实现方式:
- 用生成器表达式直接过滤结果:
import pathlib rd = pathlib.Path(r"E:\Location\MainFolder") for folder in (item for item in rd.iterdir() if item.is_dir()): print(folder)
- 使用
glob()方法匹配文件夹(*/专门匹配一级子文件夹):
import pathlib rd = pathlib.Path(r"E:\Location\MainFolder") for folder in rd.glob("*/"): print(folder)
- 如果需要递归遍历所有层级的子文件夹,可使用
rglob():
import pathlib rd = pathlib.Path(r"E:\Location\MainFolder") for folder in rd.rglob("*/"): print(folder)
补充:Windows路径中的单个反斜杠会被视为转义字符,建议用原始字符串(前缀r)或双反斜杠来定义路径,避免解析错误。
内容的提问来源于stack exchange,提问作者GooseCake
相关产品推荐
相关产品推荐

