0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python如何快速查找文件

汽車電子技術(shù) ? 來源:Python腳本 ? 作者:otfsenter ? 2023-03-03 15:39 ? 次閱讀

因?yàn)槠綍r(shí)用everything很舒服,查找文件是真的很方便,

但是既然用到了Python,就想到可不可以來自己實(shí)現(xiàn)一下,

下面的分析是針對(duì)一個(gè)目錄來查找的,當(dāng)你知道文件大致有什么東西的時(shí)候,

比如你要查找 md 結(jié)尾的的文件,又大致知道在哪個(gè)目錄的時(shí)候,就可以來自己查找。

下面是我自己臨時(shí)創(chuàng)建的一個(gè)目錄 C:\\tmp\\test

當(dāng)前的文件結(jié)構(gòu)如下:

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

這里用到了os模塊下的walk函數(shù),它會(huì)自動(dòng)遞歸遍歷一個(gè)目錄下的所有子目錄:

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 是每一個(gè)目錄,

dirs 是 root 這個(gè)目錄下所有的文件夾,

files 是 root 這個(gè)目錄下所有的文件

我們這個(gè)時(shí)候如果想查找 md 結(jié)尾的文件,就可以用下面的方法:

import glob

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

    # glob可以用正則表達(dá)式查找一個(gè)目錄下匹配的文件名
    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

這里我們可以加上找出的文件個(gè)數(shù),

len是Python內(nèi)置的函數(shù),可以獲取一個(gè)列表的長度:

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 個(gè)文件" % len(file_list))
print("找出的文件如下: ")
for f in file_list:
    print(f)

輸出:

一共找出 4 個(gè)文件
找出的文件如下:
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
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 分析
    +關(guān)注

    關(guān)注

    2

    文章

    134

    瀏覽量

    33240
  • 目錄
    +關(guān)注

    關(guān)注

    3

    文章

    13

    瀏覽量

    8216
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4752

    瀏覽量

    84067
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

     指定輸出時(shí)欄位的寬度。-V  顯示版本信息4.使用實(shí)例:實(shí)例1:查找文件、顯示命令路徑命令:which lsmod輸出:[root@localhost ~]# which pwd/bin/pwd
    發(fā)表于 02-25 11:03

    Ecal安裝復(fù)制文件查找文件時(shí)停止

    嗨,我有一個(gè)帶有模塊85093-60005的Ecal 85093B和一個(gè)帶有最新版本A.06.04.32的PNA E8357A。當(dāng)我嘗試安裝Ecal時(shí),開始復(fù)制文件,然后在查找文件時(shí)停止
    發(fā)表于 09-25 14:51

    linux中怎么用find查找文件

    find命令用來在指定目錄下查找文件的命令,和locate不同,find命令是實(shí)時(shí)精確查找,不做模糊匹配,但是可以使用通配符查找,相對(duì)更精確。任何位于參數(shù)之前的字符串都將被視為欲查找
    發(fā)表于 11-26 13:52

    Python文件查找的腳本知識(shí)概述

    Python文件查找
    發(fā)表于 07-15 11:25

    Python數(shù)據(jù)科學(xué)速查

    Python數(shù)據(jù)科學(xué)速查
    發(fā)表于 11-25 21:18

    如何快速查找液晶顯示器面板型號(hào)?

    如何快速查找液晶顯示器面板型號(hào)?
    發(fā)表于 10-14 06:00

    如何快速查找STM32F4外設(shè)配置?

    如何快速查找STM32F4外設(shè)配置?
    發(fā)表于 12-08 06:36

    如何迅速查找電動(dòng)車故障

    如何迅速查找電動(dòng)車故障 修理電動(dòng)自行車分兩步進(jìn)行,即查找故障和修理排除
    發(fā)表于 11-16 13:40 ?1647次閱讀

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

    Linux 的好處之一是它提供了多種方式來處理。你可以打開任何文件管理器或按下 Ctrl+F,你也可以使用程序手動(dòng)打開文件,或者你可以開始輸入字母,它會(huì)過濾當(dāng)前目錄列表。
    發(fā)表于 04-28 10:48 ?1763次閱讀
    通過指令在Linux中<b class='flag-5'>快速查找文件</b>的技巧

    工程師小經(jīng)驗(yàn):快速查找原理圖元器件資料資料下載

    電子發(fā)燒友網(wǎng)為你提供工程師小經(jīng)驗(yàn):快速查找原理圖元器件資料資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-03 08:50 ?52次下載
    工程師小經(jīng)驗(yàn):<b class='flag-5'>快速查找</b>原理圖元器件資料資料下載

    在Android系統(tǒng)開發(fā)過程中如何快速查找定位代碼呢

    Android系統(tǒng)開發(fā)過程,經(jīng)常需要進(jìn)行文件查找、代碼查找,常用find和grep查找命令
    的頭像 發(fā)表于 12-01 09:22 ?1907次閱讀

    CAD文件太多,機(jī)械設(shè)計(jì)師如何快速查找文件?

    機(jī)械設(shè)計(jì)師如何快速查找文件? 彩虹EDM圖紙管理軟件(南寧市二零二五科技有限公司自主研發(fā)的一款軟件系統(tǒng))檢索功能:規(guī)范的圖紙管理體系,讓圖紙版本出錯(cuò)減少99%,提高圖紙的復(fù)用率。系統(tǒng)的檢索功能,能夠
    的頭像 發(fā)表于 03-01 13:51 ?623次閱讀
    CAD<b class='flag-5'>文件</b>太多,機(jī)械設(shè)計(jì)師如何<b class='flag-5'>快速查找文件</b>?

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

    對(duì)于Linux新用戶來說,在Linux中查找文件可能有點(diǎn)困難。但是,在適當(dāng)?shù)闹笇?dǎo)下,任何人都可以創(chuàng)建文件快捷方式或找到其Linux系統(tǒng)中有多少文件。 我們必須使用命令行來查找文件或特定
    的頭像 發(fā)表于 03-23 14:55 ?4015次閱讀

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

    在 Linux 系統(tǒng)中,每個(gè)文件和目錄都有一個(gè)所有者(owner)和一個(gè)所屬組(group)。所有者通常是創(chuàng)建該文件或目錄的用戶,而所屬組通常是文件或目錄所屬的組。在某些情況下,您可能需要查找
    的頭像 發(fā)表于 05-12 14:31 ?1160次閱讀
    如何在Linux中<b class='flag-5'>查找文件</b>所有者?

    linux中查找文件的命令

    在Linux中,可以使用以下命令來查找文件: find 命令:可以在指定目錄及其子目錄中查找文件,支持根據(jù)文件名、文件類型、文件大小、
    的頭像 發(fā)表于 11-08 14:24 ?1055次閱讀