专栏首页未闻Code一日一技:在 Python 中快速遍历文件

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

摄影:产品经理

厨师:产品经理

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

  • 没有子文件夹时
import osall_file = os.listdir('target_folder')target_file = [x for x in all_file if x.endswith('.py')]
  • 有子文件夹时:
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)

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

.├── 1.py├── 2.py├── sub│   ├── 3.py│   ├── subsub1│   │   └── 4.py│   └── subsub2│       └── 5.py└── test.py

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

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

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

import glob
result = glob.glob('**/*.py', recursive=True)print(result)

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

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

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

运行效果如下图所示:

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

本文分享自微信公众号 - 未闻Code(itskingname),作者:kingname

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 为什么Python代码能运行但是PyCharm给我画红线?

    PyCharm在遇到模块找不到时,会使用红色波浪线提醒开发者。这本来是一个非常好的功能,但却由于另外一个问题,会给一些Python初学者造成困扰。

    青南
  • Python初学者常犯错误及解决方法自查

    如果你的电脑里面只安装了Python 2或者只安装了Python 3,总之只有一个Python,那么,无论你是哪个系统,你总是可以使用 python xxx.p...

    青南
  • 你经常看到却经常忽视的__init__.py有什么用?

    Python 初学者在阅读一些 Python 开源项目时,常常会看到一个叫做__init__.py的文件。下图为著名的第三方库requests的源代码:

    青南
  • django创建项目

    Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:

    用户2398817
  • 重磅推荐 | Flask项目脚手架--Flask-Application

    Flask-App是专门给Flask提供项目初始化的工具,通过该工具可以快速地创建一个Flask的初始项目/应用。新创建的项目/应用会包含良好的目录结构和基础的...

    上帝De助手
  • 一、Django的基本用法

    学习Django有一段时间了,整理一下,充当笔记。盗张图: ? MVC 大部分开发语言中都有MVC框架 MVC框架的核心思想是:解耦 降低各功能模块之间的耦合性...

    酱紫安
  • python中的__init__.py作用

    在Python中,我们经常会看到一个文件夹下有若干个py文件,其中总有那么一个py文件在命名上很特别,就是__init__.py。该py文件前后各是两个下划线,...

    Defu Li
  • 还是用RSeQC对比对后的转录组数据做一下质控

    那个时候写教程,以软件安装,软件input和output为主,因为觉得新手最容易纠结的就是这些了,但是现在回过头来看,软件安装已经成了小菜一碟,对各种bam/s...

    企鹅号小编
  • Django框架基础知识01-配置环境

    •新建项目的命令: django-admin startproject projectname

    用户2398817
  • 在python中运行命令行命令的四种方案

    本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/article/run_shell_command_in_pytho...

    羽翰尘

扫码关注云+社区

领取腾讯云代金券