类似于 bash find 命令的 Python 函数

标签 python

我的目录结构如下:

[me@mypc]$ tree .
.
├── set01
│   ├── 01
│   │   ├── p1-001a.png
│   │   ├── p1-001b.png
│   │   ├── p1-001c.png
│   │   ├── p1-001d.png
│   │   └── p1-001e.png
│   ├── 02
│   │   ├── p2-001a.png
│   │   ├── p2-001b.png
│   │   ├── p2-001c.png
│   │   ├── p2-001d.png
│   │   └── p2-001e.png

我想写一个 python 脚本将所有 *a.png 重命名为 01.png,*b.png 为 02.png,等等。首先,我想我必须使用类似于 find 的东西。 -name '*.png',我在 python 中发现的最相似的东西是 os.walk。但是,在 os.walk 中,我必须检查每个文件,如果它是 png,那么我会将它与它的根连接起来,不知何故不是那么优雅。我想知道是否有更好的方法来做到这一点?提前致谢。

最佳答案

对于这样的搜索模式,您可能可以使用 glob .

from glob import glob
paths = glob('set01/*/*.png')

关于类似于 bash find 命令的 Python 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8247157/

相关文章:

python - 如何使用discord.py创建 "react to role"嵌入消息

python - 改进一个简单的 spring 网络的 numpy 实现

python - 当文件不存在/无法运行时如何阻止程序关闭

python - 从按多列分组的 pandas 数据框中获取嵌套 JSON

python - Graphviz:使所有节点的大小与最大的节点相同

python - 如何修复 Django 模板中显示数据库图像时的 'TypeError: join() '

python - 能源消耗最大化

python - Ubuntu 14.04 和 Python 2.7.6 的 virtualenv 中没有名为 pygtk 的模块

python - 如何在python中将列表转换为带引号的字符串

python - 在 Python 中检测和录制音频