前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一日一技:在 Python 中快速遍历文件

一日一技:在 Python 中快速遍历文件

作者头像
青南
发布2019-09-08 09:18:15
1.4K0
发布2019-09-08 09:18:15
举报
文章被收录于专栏:未闻Code未闻Code

摄影:产品经理

厨师:产品经理

当我们要在一个文件夹及其子文件夹里面寻找特定类型的文件,我们可能会这样写代码:

  • 没有子文件夹时
代码语言:javascript
复制
import osall_file = os.listdir('target_folder')target_file = [x for x in all_file if x.endswith('.py')]
  • 有子文件夹时:
代码语言:javascript
复制
import os
py_files = []for root, folder, files in os.walk('.'):    for file in files:        if file.endswith('.py'):            py_files.append(os.path.join(root, file))
print(py_files)

如果当前文件夹的结构如下所示:

代码语言:javascript
复制
.├── 1.py├── 2.py├── sub│   ├── 3.py│   ├── subsub1│   │   └── 4.py│   └── subsub2│       └── 5.py└── test.py

那么运行结果如下图所示:

虽然确实满足要求了,但是代码还是有点复杂,而是嵌套三层缩进,代码不够美观。

实际上,要解决遍历文件的问题,只需要使用 Python 自带的 glob模块即可:

代码语言:javascript
复制
import glob
result = glob.glob('**/*.py', recursive=True)print(result)

在使用 glob模块时,第一个参数指定目标文件的文件名格式,这里可以使用 Linux 中的通配符。如果文件名写为 *.py,那么就是当前文件夹下面的所有 .py文件。

如果文件名写为 **/*.py,那么就是当前第一层子文件夹下面的所有 .py文件。

如果文件名写为 **/*.py,并且增加参数 recursive=True,那么就是递归搜索当前文件夹和所有子文件夹。

运行效果如下图所示:

非常简单就实现了遍历文件夹查找文件的操作。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档