Python3.遍歷某文件夾提取特定文件名的實(shí)例
批量處理文件時(shí),常需要先遍歷某個(gè)路徑提取特定條件的文件名。這篇寫一個(gè)暴力遍歷但很簡(jiǎn)潔的方法,真的非常簡(jiǎn)潔但是非常暴力。
例子目標(biāo)是:獲得存放遙感數(shù)據(jù)的文件夾下文件夾名以“_BAD”結(jié)尾的文件夾內(nèi)容。因?yàn)樵撐募路旨?jí)很多(年/月/產(chǎn)品類型/),目標(biāo)文件夾很多且存在在最后一級(jí),手動(dòng)查看很煩。
代碼如下(知識(shí)點(diǎn)總結(jié)代碼后):
# -*- coding: utf-8 -*- """ 遍歷某路徑下所有文件夾,獲得特定文件夾下所有文件 很暴力,真的遍歷了所有的文件夾 20180124 @author: 墨大寶 """ import os TARGETPATH = r'F:\MODIS_DATA' records = [] for currentDir, _, includedFiles in os.walk(TARGETPATH): if not currentDir.endswith('_BAD'): continue else: records.append(currentDir) # 將以“_BAD”結(jié)尾的文件夾名加入records records.extend(includedFiles) # 將該文件夾內(nèi)的文件名列表擴(kuò)展到records # 將records寫入.txt txtFile = open(os.path.join(TARGETPATH, '02_04_BAD.txt'), 'w') txtFile.write(os.linesep.join(records)) txtFile.close() # 將排序后的records寫入.txt with open(os.path.join(TARGETPATH, '02_04_BAD_SORTED.txt'), 'w') as txtFile: txtFile.write('\n'.join(sorted(records)))
os.walk()返回Directory tree generator。每次生成格式為(dirpath, dirnames, filenames) 的tuple,元素依次是當(dāng)前路徑、當(dāng)前路徑下文件夾列表、當(dāng)前路徑下文件名列表。
list的.append()、.extend()和.sort()方法都是原地修改,sorted()函數(shù)不是。
將list寫入.txt文件時(shí)需要把list轉(zhuǎn)為str,直接用str()函數(shù)強(qiáng)轉(zhuǎn)會(huì)很丑,用換行符連接list每個(gè)元素會(huì)好看很多。
os.path代表系統(tǒng)換行符,windows下為”\r\n”,其他系統(tǒng)多是”\n”。然而無論是用os.path還是”\n”連接列表元素,最后用windows記事本打開都一樣換行,但是用vs code打開的話os.path會(huì)多換一行即看上去一行間一行,這里面到底為啥有點(diǎn)說到,可能和Python的write機(jī)制有關(guān),暫時(shí)不深究(留坑)。
關(guān)于文件讀寫,大多數(shù)資料推薦with as形式,確實(shí)更簡(jiǎn)潔一點(diǎn)。
PS:
說os.walk()暴力是因?yàn)樗娴陌凑漳夸洏浔闅v了所給路徑中的所有文件夾和文件,文件量大而所要找的文件名少的情況下會(huì)慢一些(其實(shí)我覺得慢不了多少),用os.listdir()寫成遞歸函數(shù)的話執(zhí)行效率可能會(huì)高一些,但是os.walk()邏輯簡(jiǎn)單好寫,各位隨意,我干了!
以上這篇Python3.遍歷某文件夾提取特定文件名的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python3讀取excel文件只提取某些行某些列的值方法
- Python實(shí)現(xiàn)從URL地址提取文件名的方法
- 使用python提取html文件中的特定數(shù)據(jù)的實(shí)現(xiàn)代碼
- python 提取文件的小程序
- python 提取文件指定列的方法示例
- python實(shí)現(xiàn)從pdf文件中提取文本,并自動(dòng)翻譯的方法
- 使用python實(shí)現(xiàn)語(yǔ)音文件的特征提取方法
- 使用python對(duì)文件中的單詞進(jìn)行提取的方法示例
- Python批量提取PDF文件中文本的腳本
- python實(shí)現(xiàn)批量提取指定文件夾下同類型文件
相關(guān)文章
Python繪制1000響大地紅鞭炮動(dòng)態(tài)效果
俗話說得好,這所謂放鞭炮就是來壓邪祟,除惡的,但是近幾年來都不讓放炮了,這篇文章主要介紹了Python來繪制1000響大地紅鞭炮動(dòng)態(tài)效果2023-01-01Python為Excel單元格設(shè)置填充\背景色的操作方法(純色、漸變、圖案)
在使用Excel進(jìn)行數(shù)據(jù)處理和分析時(shí),對(duì)特定單元格進(jìn)行背景顏色填充不僅能夠提升工作表的視覺吸引力,還能幫助用戶快速識(shí)別和區(qū)分不同類別的數(shù)據(jù),本文將通過三個(gè)示例詳細(xì)介紹如何使用Python在Excel中設(shè)置不同的單元格背景,需要的朋友可以參考下2024-08-08python3+pyqt5+itchat微信定時(shí)發(fā)送消息的方法
今天小編就為大家分享一篇python3+pyqt5+itchat微信定時(shí)發(fā)送消息的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-02-02基于Python實(shí)現(xiàn)Excel轉(zhuǎn)Markdown表格
Markdown(也簡(jiǎn)稱md)作為一種輕量級(jí)標(biāo)記語(yǔ)言,因其易寫易讀,效果美觀大方,不僅被眾多網(wǎng)站使用,也是程序員們做筆記、寫文檔的首選。本文將利用Python實(shí)現(xiàn)Excel轉(zhuǎn)Markdown表格,感興趣的可以了解一下2022-04-04Python中的wordcloud庫(kù)安裝問題及解決方法
這篇文章主要介紹了Python中的wordcloud庫(kù)安裝問題及解決方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Python3 加密(hashlib和hmac)模塊的實(shí)現(xiàn)
本篇文章主要介紹了Python3 加密(hashlib / hmac)模塊的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11pandas創(chuàng)建DataFrame對(duì)象失敗的解決方法
本文主要介紹了pandas創(chuàng)建DataFrame對(duì)象失敗的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01