日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Python 如何查找特定類型文件

瀏覽:11日期:2022-07-13 18:03:33

寫在之前

今天的文章是介紹如何用 Python 去定位特定類型的文件,會講到用字符串匹配文件名定位特定文件以及順帶介紹一下遍歷目錄樹的函數(shù),通過今天的這一部分以及之前文章講到的文件獲取屬性的操作,可以做很多有意思的事情。

定位特定文件

定位特定的文件,可以使用 fnmatch 以及 glob 這兩個標(biāo)準庫,我們下面來分別看一下。

1. 使用 fnmatch 標(biāo)準庫

一般的話我們想要查找特定類型的文件,可以通過字符串的前綴匹配和后綴匹配來查找,具體實例如下所示:

>>> import os>>> [txt for txt in os.listdir(’.’) if txt.endswith(’.txt’)][’b.txt’, ’a.txt’]

其實大部分的情況下這種用字符串匹配的方法來查找文件就足夠可以滿足需要,如果有些情況下需要更加靈活一點的字符串匹配,就可以使用 fnmatch 庫,這是一個專門用來進行文件名匹配的庫,支持使用通配符來進行文字匹配(比如’*’,’?’等)。

fnmatch 這個庫很簡單,只有 4 個函數(shù):fnmatch,fnmatchcase,filter,translate:

fnmatch:判斷文件名是否符合特定的模式; fnmatchcase:判斷文件名是否符合特定的模式(不區(qū)分大小寫); filter:返回輸入列表中,符合特定模式的文件名列表; translate:將通配符模式轉(zhuǎn)換成正則表達式。

上面 4 個最常用是它的同名函數(shù) fnmatch ,我的當(dāng)前目錄下有 4 個文件,分別是:a.txt,b.txt,c.py,test.py,下面我就用 fnmatch 函數(shù)來對當(dāng)前目錄下的這 4 個文件進行匹配性測試,具體請看下面代碼:

>>> import os>>> import fnmatch>>> os.listdir(’.’)[’test.py’, ’c.py’, ’b.txt’, ’a.txt’]>>> [txt for txt in os.listdir(’.’) if fnmatch.fnmatch(txt, ’*.txt’)][’b.txt’, ’a.txt’]>>> [file for file in os.listdir(’.’) if fnmatch.fnmatch(file, ’[a-c]*’)][’c.py’, ’b.txt’, ’a.txt’]>>> [file for file in os.listdir(’.’) if fnmatch.fnmatch(file, ’[!a-c]*’)][’test.py’]

fnmatchcase 函數(shù)與 fnmatch 函數(shù)幾乎一樣,只是在匹配的時候會忽略大小寫字母;filter 函數(shù)與 fnmatch 比較類似,區(qū)別在于fnmatch 一次只對一個文件名匹配,而 filter 一次可以對多個文件名進行匹配判斷,下面我們就再來看一下 filter 的用法:

>>> import os>>> import fnmatch>>> file = os.listdir(’.’)>>> file[’test.py’, ’c.py’, ’b.txt’, ’a.txt’]>>> fnmatch.filter(file, ’[a-c]*’)[’c.py’, ’b.txt’, ’a.txt’]>>> fnmatch.filter(file, ’[!a-c]*’)[’test.py’]

2.使用 glob 定位

我們在上面介紹的獲取特定類型的文件列表,首先是通過 os.listdir 獲取全部的文件列表,然后通過字符串匹配或者使用 fnmatch 進行文件名模式匹配來定位,習(xí)慣了 Python 的簡潔優(yōu)雅,這多出來的一步總覺得哪里怪怪的,好在我現(xiàn)在知道了 glob。

glob 的作用相當(dāng)于 os.listdir + fnmatch 的組合,使用 glob 以后,就不需要用 os.listdir 獲取文件列表,直接通過模式匹配就可以解決了,具體操作如下所示:

>>> import glob>>> glob.glob(’*.txt’)[’b.txt’, ’a.txt’]>>> glob.glob(’[a-c]*’)[’c.py’, ’b.txt’, ’a.txt’]>>> glob.glob(’[!a-c]*’)[’test.py’]

可以看到,Python 真的非常的靈活,光是定位目錄下特定的文件類型我就已經(jīng)介紹了 3 種方式,一般情況下就用字符串匹配就可以解決,如果需要更加靈活一點的的,可以使用 fnmatch 和 glob。

遍歷目錄樹

再上一節(jié)中我們都是查找某個目錄下的文件然后通過匹配去定位自己需要的文件類型。但是在實際的應(yīng)用過程中我們更可能遇到的是某個目錄及其子目錄下的所有文件。比如查找某個目錄及其子目錄下所有的 txt 文件等等,對于這類的需求,我們可以使用 os 模塊下的「walk」函數(shù)。walk 函數(shù)遍歷某個目錄及其子目錄,對于每一個目錄,walk 返回一個三元組,依次是「當(dāng)前目錄」,「當(dāng)前目錄下的子目錄」,「當(dāng)前目錄下的文件列表」。

下面我們來演示一下 os.walk 函數(shù)的用法,做一個小的練習(xí),來遍歷一下 /root/rocky0429 目錄及其子目錄下的所有 txt 和 圖片文件:

import osimport fnmatchsearch = [’*.txt’, ’*.jpg’, ’*.jpeg’]res = []for root, dirnames, filenames in os.walk(os.path.expanduser(’~/rocky0429’)): for extension in search: for filename in fnmatch.filter(filenames, extension): res.append(os.path.join(root,filename)) print(res)

以上就是Python 如何查找特定類型文件的詳細內(nèi)容,更多關(guān)于python 查找文件的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
另类小说一区二区三区| 国产一区二区色噜噜| 久久高清免费| 亚洲电影有码| 亚洲国产日韩欧美在线| 久久亚洲风情| 日韩和欧美一区二区三区| 欧美日韩亚洲一区在线观看| 国产精品观看| 久久人人97超碰国产公开结果| 亚洲福利久久| 亚洲2区在线| 欧美国产另类| 国产一区二区三区四区五区传媒| 国产aa精品| 99视频+国产日韩欧美| 日韩av一二三| 秋霞国产精品| 男女男精品网站| 欧美黄页在线免费观看| 成人久久久久| 视频国产精品| 色综合五月天| 在线精品福利| 精品国产不卡| 亚洲免费影院| 精品国产一区二区三区av片| 久久亚洲国产| 91精品视频一区二区| 日韩一区三区| 日本欧美一区二区| 欧美精品高清| 日韩精品91亚洲二区在线观看| 国产一区二区色噜噜| 亚洲制服少妇| 97国产精品| 日韩精品亚洲专区| 婷婷激情一区| 欧美日韩一区二区三区不卡视频| 久久久成人网| 久久99影视| 亚洲香蕉久久| 亚洲电影在线| 你懂的国产精品| 国产精品视区| 欧美日韩在线观看首页| 亚洲精品看片| 亚洲激情另类| 亚洲欧洲美洲av| 欧美在线观看天堂一区二区三区| 久久天堂成人| 麻豆91精品91久久久的内涵| 亚洲精品观看| 在线视频精品| 久久精品av| 国产成人精品三级高清久久91| 亚洲免费毛片| 欧美理论视频| 伊人网在线播放| 日本国产欧美| 久久99伊人| 午夜欧美精品久久久久久久| jizzjizz中国精品麻豆| 91精品国产自产在线丝袜啪| 久久国产精品毛片| 亚洲网站视频| 国产精品男女| 国产精品传媒麻豆hd| 91精品一区二区三区综合| 久久午夜影院| 欧美三级第一页| 综合激情五月婷婷| 人人精品亚洲| 亚洲美女久久精品| 国产日韩欧美中文在线| 蜜桃视频在线观看一区二区| 亚洲国产综合在线看不卡| 日韩毛片在线| se01亚洲视频| 欧美天堂视频| 日本一区二区高清不卡| 精品一区二区三区亚洲| 7777精品| 91国内精品| 日韩av在线播放中文字幕| 亚洲制服欧美另类| 亚洲精品美女| 日韩在线观看| 中文在线中文资源| 蜜桃精品视频| 精品久久久久中文字幕小说| 国产精品分类| 精品国产乱码久久久| 国产一区日韩| 日韩av福利| 国产一区日韩一区| 精品中文一区| 欧美日韩视频一区二区三区| 午夜日韩福利| 国产精品女主播一区二区三区| 一区二区亚洲精品| 久久亚洲视频| 亚洲三级视频| 欧美日韩xxxx| 国产精品a级| 激情国产在线| 欧美日韩国产免费观看视频| 日韩在线一区二区| 日本午夜精品久久久| 国产精品一卡| 成人精品久久| 日韩亚洲国产欧美| 男女激情视频一区| 日本aⅴ亚洲精品中文乱码| 欧美激情99| 久久久精品日韩| 偷拍欧美精品| 日韩福利视频导航| 日韩电影免费在线观看| 99久久久久| 亚洲青青久久| 麻豆成人在线观看| 国产二区精品| 日本午夜精品一区二区三区电影| 国产高清视频一区二区| 91精品一区二区三区综合在线爱 | 亚洲精品1区2区| 日韩精品一区二区三区中文在线 | 国产精品夜夜夜| 97精品国产一区二区三区| 久久视频一区| 日韩一区精品| 国产欧洲在线| 免费高清在线一区| 欧美成a人片免费观看久久五月天| 日韩中文影院| 亚洲精品自拍| 国产精品蜜芽在线观看| 国产一区日韩一区| 亚洲精品伊人| 黄色网一区二区| 蘑菇福利视频一区播放| 国产精品流白浆在线观看| 久久免费国产| 中文字幕一区二区三区四区久久| 国产精品v亚洲精品v日韩精品| 人人香蕉久久| 久久激情综合网| 色爱av综合网| 国产日韩欧美三区| 欧美成人精品| 国产精品密蕾丝视频下载| 国产一区清纯| 狠狠久久伊人中文字幕| 在线精品一区二区| 老牛影视精品| 青青青国产精品| 一区免费视频| 亚洲黄色网址| 国产欧美日韩免费观看| 欧美丝袜一区| 精品三区视频| 亚洲精品三级| 激情久久五月| 麻豆理论在线观看| 国产伦理久久久久久妇女| 欧美特黄一级| 日韩欧美一区二区三区免费看| 欧美专区一区| 亚洲一区黄色| 久久一区二区三区电影| 久久91视频| 日韩精品久久理论片| 国产高清久久| 久久这里只有精品一区二区| 亚洲涩涩av| 午夜久久黄色| 久久免费国产| 日韩一区三区| 国产精品99久久精品| 国产日产精品_国产精品毛片| 亚洲一区不卡| 欧美午夜不卡| 婷婷综合激情| 亚洲高清激情| 99久久视频| www.九色在线| 久久精品欧洲| 毛片不卡一区二区| 国产精品流白浆在线观看| 一区二区国产精品| 另类av一区二区| 国产模特精品视频久久久久| 五月综合激情| 亚洲激情中文| 亚洲国产一区二区三区在线播放 | 国产亚洲精品美女久久 | 好看不卡的中文字幕| 久久要要av| 欧美精品日日操|