因為平時用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瀏覽量
33302 -
目錄
+關注
關注
3文章
13瀏覽量
8241 -
python
+關注
關注
56文章
4792瀏覽量
84628
發布評論請先 登錄
相關推薦
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
通過指令在Linux中快速查找文件的技巧
Linux 的好處之一是它提供了多種方式來處理。你可以打開任何文件管理器或按下 Ctrl+F,你也可以使用程序手動打開文件,或者你可以開始輸入字母,它會過濾當前目錄列表。
發表于 04-28 10:48
?1803次閱讀
工程師小經驗:快速查找原理圖元器件資料資料下載
電子發燒友網為你提供工程師小經驗:快速查找原理圖元器件資料資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
發表于 04-03 08:50
?52次下載
CAD文件太多,機械設計師如何快速查找文件?
機械設計師如何快速查找文件? 彩虹EDM圖紙管理軟件(南寧市二零二五科技有限公司自主研發的一款軟件系統)檢索功能:規范的圖紙管理體系,讓圖紙版本出錯減少99%,提高圖紙的復用率。系統的檢索功能,能夠
如何使用命令行在Linux中查找文件?
對于Linux新用戶來說,在Linux中查找文件可能有點困難。但是,在適當的指導下,任何人都可以創建文件快捷方式或找到其Linux系統中有多少文件。 我們必須使用命令行來查找文件或特定
如何在Linux中查找文件所有者?
在 Linux 系統中,每個文件和目錄都有一個所有者(owner)和一個所屬組(group)。所有者通常是創建該文件或目錄的用戶,而所屬組通常是文件或目錄所屬的組。在某些情況下,您可能需要查找
linux中查找文件的命令
在Linux中,可以使用以下命令來查找文件: find 命令:可以在指定目錄及其子目錄中查找文件,支持根據文件名、文件類型、文件大小、
評論