如何解决跳过pathlib glob中的隐藏文件和目录
与
from pathlib import Path
path = Path("/my/path")
for p in path.rglob("*"):
print(p)
我可以获取 /my/path
中的所有文件和目录。如何跳过隐藏的文件和目录?
来自
file
.hidden_file
dir /
file
.hidden_file
.hidden_dir /
file
.hidden_file
我只想得到
file
dir /
file
解决方法
代替:
path.rglob('*')
试试这个:
path.rglob('[!.]*') if not os.path.isdir(p)
很遗憾,我现在无法测试,但希望可以。
,没有内置的方法可以做到这一点,glob
绝对不适合它。我猜您可以在 os.walk
之上构建它:在每一步过滤 files
数组,以及就地修改 dirs
以避免递归到隐藏目录中。
请注意,隐藏文件的 Unix 概念(dotfile hack)对于其他操作系统来说不一定足够(或兼容,有点像),例如macOS 确实使用点文件,但也有一个 stat 标志 (UF_HIDDEN
),而 Windows 应该 只使用相关的 stat 标志 (FILE_ATTRIBUTE_HIDDEN
),尽管忽略点文件可能没有帮助。
理想情况下会有一个自动执行此操作的 filewalker,包括对 ignorefiles 的支持(类似于 Rust 的 ignore 库),但 pypi 并没有真正显示任何内容,其中一半的包是关于创建 ignorefiles 的,并且其余的要么不完整,要么被遗弃。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。