美文网首页
[Python]递归查找文件(最简洁)

[Python]递归查找文件(最简洁)

作者: 培根炒蛋 | 来源:发表于2020-07-22 14:10 被阅读0次

google了一下发现大多数人都是自己实现的,其实python标准库里是有相关方法的,更简洁,而且支持pattern匹配。

其实自己实现也没多难,但是一个非常重要的经验告诉我,内置方法哪怕代码跟你的一模一样都会比你自己写的快很多,所以当你想要一个功能的时候,最好先查一下标准库里有没有,或者有没有其他人已经做过的,而不是上来就去自己实现,不一定有人家写的好不说,效率还不高。

Path.glob(pattern)

解析相对于此路径的通配符 pattern,产生所有匹配的文件:

>>> sorted(Path('.').glob('*.py'))
[PosixPath('pathlib.py'), PosixPath('setup.py'), PosixPath('test_pathlib.py')]
>>> sorted(Path('.').glob('*/*.py'))
[PosixPath('docs/conf.py')]

** 模式表示 “此目录以及所有子目录,递归”。换句话说,它启用递归通配:

>>> sorted(Path('.').glob('**/*.py'))
[PosixPath('build/lib/pathlib.py'),
 PosixPath('docs/conf.py'),
 PosixPath('pathlib.py'),
 PosixPath('setup.py'),
 PosixPath('test_pathlib.py')]

注解:在一个较大的目录树中使用 ** 模式可能会消耗非常多的时间。

Path.rglob(pattern)

这就像调用 Path.glob时在给定的相对 pattern 前面添加了**/

>>> sorted(Path().rglob("*.py"))
[PosixPath('build/lib/pathlib.py'),
 PosixPath('docs/conf.py'),
 PosixPath('pathlib.py'),
 PosixPath('setup.py'),
 PosixPath('test_pathlib.py')]

Nice and easy.

相关文章

  • [Python]递归查找文件(最简洁)

    google了一下发现大多数人都是自己实现的,其实python标准库里是有相关方法的,更简洁,而且支持patter...

  • 快速排序

    python版本快速排序: 1. 简洁版递归: 2. 常见版本: 3. 算法导论版: 4. 非递归版:

  • grep 查找文件中满足条件的行

    grep [参数] 查找内容 查找文件 -v 反选 -n 显示行号 -r 递归查找文件 grep --color ...

  • 不会的题

    find查找文件信息grep查找文件内容-R递归 -n显示行信息 1 3 3 3文件类型 | (rwx)文件所有者...

  • Linux常用命令

    find 查找文件 find /usr -name "redis*" :在/usr目录下递归搜索包含redis的文...

  • python基础准备

    Life is short,you need Python。python的特点解释语言、高级语言简洁,容易上手。最...

  • python 递归 查找文件夹下文件

    用python自动搜索文件时,如果某文件夹下文件层级较深且文件操作频繁,可以用如下方法: 如果不同文件夹下可能有同...

  • python数据结构教程 Day6

    python数据结构教程 Day6 本节重点 递归定义 递归调用的实现 简单递归的应用 一、递归 在python基...

  • Python精简入门学习(十)

    Python精简入门学习之递归函数-递归 -递归 -如图所示

  • Android查询算法

    一、获取最小值 二、递归数兔子 三、查找文件 四、二分查找(1)使用递归 (2)二分查找 五、字符串旋转

网友评论

      本文标题:[Python]递归查找文件(最简洁)

      本文链接:https://www.haomeiwen.com/subject/ctnzkktx.html