0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python如何快速查找文件

汽车电子技术 来源:Python脚本 作者:otfsenter 2023-03-03 15:39 次阅读

因为平时用everything很舒服,查找文件是真的很方便,

但是既然用到了Python,就想到可不可以来自己实现一下,

下面的分析是针对一个目录来查找的,当你知道文件大致有什么东西的时候,

比如你要查找 md 结尾的的文件,又大致知道在哪个目录的时候,就可以来自己查找。

下面是我自己临时创建的一个目录 C:\\tmp\\test

当前的文件结构如下:

|-- C:\\tmp\\test
    |-- 1.log
    |-- result.txt
    |-- test.md
    |-- cool
    |   |-- cool.md
    |   |-- cool_sub
    |       |-- sub.md
    |-- how
        |-- how.md

这里用到了os模块下的walk函数,它会自动递归遍历一个目录下的所有子目录:

import os

PATH = r'C:\\tmp\\test'

for root, dirs, files in os.walk(PATH):
    print('root: ', root)
    print('dirs: ', dirs)
    print('files: ', files)
    print('---------------------------------------')

输出:

root:  C:\\tmp\\test
dirs:  ['cool', 'how']
files:  ['1.log', 'result.txt', 'test.md']
---------------------------------------
root:  C:\\tmp\\test\\cool
dirs:  ['cool_sub']
files:  ['cool.md']
---------------------------------------
root:  C:\\tmp\\test\\cool\\cool_sub
dirs:  []
files:  ['sub.md']
---------------------------------------
root:  C:\\tmp\\test\\how
dirs:  []
files:  ['how.md']
---------------------------------------

从上面可以看出,root 是每一个目录,

dirs 是 root 这个目录下所有的文件夹,

files 是 root 这个目录下所有的文件

我们这个时候如果想查找 md 结尾的文件,就可以用下面的方法:

import glob

print("找出的文件如下: ")
for root, dirs, files in os.walk(PATH):

    # glob可以用正则表达式查找一个目录下匹配的文件名
    file_pattern = os.path.join(root, '*.md')
    for f in glob.glob(file_pattern):
        print(f)

输出:

找出的文件如下:
C:\\tmp\\test\\test.md
C:\\tmp\\test\\cool\\cool.md
C:\\tmp\\test\\cool\\cool_sub\\sub.md
C:\\tmp\\test\\how\\how.md

这里我们可以加上找出的文件个数,

len是Python内置的函数,可以获取一个列表的长度:

files = [1, 2, 3]
len_files = len(files)
print("列表的长度是:", len_files)

输出:

列表的长度是: 3

最终的代码如下:

import osimport glob

PATH = r'C:\\tmp\\test'

file_list = []
for root, dirs, files in os.walk(PATH):

    file_pattern = os.path.join(root, '*.md')
    for f in glob.glob(file_pattern):
        file_list.append(f)

print("一共找出 %d 个文件" % len(file_list))
print("找出的文件如下: ")
for f in file_list:
    print(f)

输出:

一共找出 4 个文件
找出的文件如下:
C:\\tmp\\test\\test.md
C:\\tmp\\test\\cool\\cool.md
C:\\tmp\\test\\cool\\cool_sub\\sub.md
C:\\tmp\\test\\how\\how.md
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 分析
    +关注

    关注

    2

    文章

    134

    浏览量

    33281
  • 目录
    +关注

    关注

    3

    文章

    13

    浏览量

    8232
  • python
    +关注

    关注

    55

    文章

    4777

    浏览量

    84419
收藏 人收藏

    评论

    相关推荐

    linux中查找文件-which命令使用

     指定输出时栏位的宽度。-V  显示版本信息4.使用实例:实例1:查找文件、显示命令路径命令:which lsmod输出:[root@localhost ~]# which pwd/bin/pwd
    发表于 02-25 11:03

    Ecal安装复制文件查找文件时停止

    嗨,我有一个带有模块85093-60005的Ecal 85093B和一个带有最新版本A.06.04.32的PNA E8357A。当我尝试安装Ecal时,开始复制文件,然后在查找文件时停止
    发表于 09-25 14:51

    linux中怎么用find查找文件

    find命令用来在指定目录下查找文件的命令,和locate不同,find命令是实时精确查找,不做模糊匹配,但是可以使用通配符查找,相对更精确。任何位于参数之前的字符串都将被视为欲查找
    发表于 11-26 13:52

    Python文件查找的脚本知识概述

    Python文件查找
    发表于 07-15 11:25

    Python数据科学速查

    Python数据科学速查
    发表于 11-25 21:18

    如何快速查找液晶显示器面板型号?

    如何快速查找液晶显示器面板型号?
    发表于 10-14 06:00

    如何快速查找STM32F4外设配置?

    如何快速查找STM32F4外设配置?
    发表于 12-08 06:36

    如何迅速查找电动车故障

    如何迅速查找电动车故障 修理电动自行车分两步进行,即查找故障和修理排除
    发表于 11-16 13:40 1665次阅读

    通过指令在Linux中快速查找文件的技巧

    Linux 的好处之一是它提供了多种方式来处理。你可以打开任何文件管理器或按下 Ctrl+F,你也可以使用程序手动打开文件,或者你可以开始输入字母,它会过滤当前目录列表。
    发表于 04-28 10:48 1792次阅读
    通过指令在Linux中<b class='flag-5'>快速查找文件</b>的技巧

    工程师小经验:快速查找原理图元器件资料资料下载

    电子发烧友网为你提供工程师小经验:快速查找原理图元器件资料资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-03 08:50 52次下载
    工程师小经验:<b class='flag-5'>快速查找</b>原理图元器件资料资料下载

    在Android系统开发过程中如何快速查找定位代码呢

    Android系统开发过程,经常需要进行文件查找、代码查找,常用find和grep查找命令
    的头像 发表于 12-01 09:22 2018次阅读

    CAD文件太多,机械设计师如何快速查找文件

    机械设计师如何快速查找文件? 彩虹EDM图纸管理软件(南宁市二零二五科技有限公司自主研发的一款软件系统)检索功能:规范的图纸管理体系,让图纸版本出错减少99%,提高图纸的复用率。系统的检索功能,能够
    的头像 发表于 03-01 13:51 696次阅读
    CAD<b class='flag-5'>文件</b>太多,机械设计师如何<b class='flag-5'>快速查找文件</b>?

    如何使用命令行在Linux中查找文件

    对于Linux新用户来说,在Linux中查找文件可能有点困难。但是,在适当的指导下,任何人都可以创建文件快捷方式或找到其Linux系统中有多少文件。 我们必须使用命令行来查找文件或特定
    的头像 发表于 03-23 14:55 4183次阅读

    如何在Linux中查找文件所有者?

    在 Linux 系统中,每个文件和目录都有一个所有者(owner)和一个所属组(group)。所有者通常是创建该文件或目录的用户,而所属组通常是文件或目录所属的组。在某些情况下,您可能需要查找
    的头像 发表于 05-12 14:31 1247次阅读
    如何在Linux中<b class='flag-5'>查找文件</b>所有者?

    linux中查找文件的命令

    在Linux中,可以使用以下命令来查找文件: find 命令:可以在指定目录及其子目录中查找文件,支持根据文件名、文件类型、文件大小、
    的头像 发表于 11-08 14:24 1233次阅读