You need to enable JavaScript to run this app. Python Pathlib使用glob/rglob时如何跳过隐藏文件与目录
优惠活动
大模型
产品
解决方案
定价
更多

Python Pathlib使用glob/rglob时如何跳过隐藏文件与目录

遍历跳过隐藏文件与目录的实现方法

要实现递归遍历过程中自动跳过所有隐藏资源,核心是识别路径上任意一级以.开头的节点——这类节点既包含直接命名的隐藏文件(比如.hidden_file)、隐藏目录(比如.hidden_dir),也包含隐藏目录下嵌套的所有文件。不需要额外做复杂的递归剪枝逻辑,判断过程开销极低,对常规目录规模来说完全没有性能影响,过滤准确率最高。

修改后的可运行代码

from pathlib import Path

def check_hidden(p: Path) -> bool:
    # 逐层级校验路径组成,任意一段以.开头即为隐藏资源
    return any(segment.startswith(".") for segment in p.parts)

base_path = Path("/my/path")
for path_item in base_path.rglob("*"):
    if check_hidden(path_item):
        continue
    # 按照示例的展示习惯,给目录追加/后缀方便直观区分
    display_suffix = "/" if path_item.is_dir() else ""
    print(f"{path_item}{display_suffix}")

匹配测试目录的输出效果

针对题目给出的混合了隐藏资源的目录结构,运行后输出的资源集合完全符合预期:

  • 根目录下的普通文件file
  • 根目录下的普通目录dir/
  • 普通目录dir内部嵌套的普通文件

所有以.开头的文件、目录,包括.hidden_dir内部嵌套的所有普通文件,都会被自动过滤,不会出现在输出结果里。

常见踩坑点:如果仅判断当前路径自身的文件名是否以.开头,会漏过隐藏目录下嵌套的普通文件——比如藏在.hidden_dir里的file,自身名称没有.开头,但因为父目录是隐藏目录,按照需求应该整体跳过,这种写法就会把这类不该输出的资源打印出来。

内容的提问来源于stack exchange,提问作者Nico Schlömer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 07:54:00