Python3.遍歷某文件夾提取特定文件名的實例
批量處理文件時,常需要先遍歷某個路徑提取特定條件的文件名。這篇寫一個暴力遍歷但很簡潔的方法,真的非常簡潔但是非常暴力。
例子目標是:獲得存放遙感數(shù)據(jù)的文件夾下文件夾名以“_BAD”結(jié)尾的文件夾內(nèi)容。因為該文件下分級很多(年/月/產(chǎ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)的文件名列表擴展到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,元素依次是當前路徑、當前路徑下文件夾列表、當前路徑下文件名列表。
list的.append()、.extend()和.sort()方法都是原地修改,sorted()函數(shù)不是。
將list寫入.txt文件時需要把list轉(zhuǎn)為str,直接用str()函數(shù)強轉(zhuǎn)會很丑,用換行符連接list每個元素會好看很多。
os.path代表系統(tǒng)換行符,windows下為”\r\n”,其他系統(tǒng)多是”\n”。然而無論是用os.path還是”\n”連接列表元素,最后用windows記事本打開都一樣換行,但是用vs code打開的話os.path會多換一行即看上去一行間一行,這里面到底為啥有點說到,可能和Python的write機制有關(guān),暫時不深究(留坑)。
關(guān)于文件讀寫,大多數(shù)資料推薦with as形式,確實更簡潔一點。
PS:
說os.walk()暴力是因為它真的按照目錄樹遍歷了所給路徑中的所有文件夾和文件,文件量大而所要找的文件名少的情況下會慢一些(其實我覺得慢不了多少),用os.listdir()寫成遞歸函數(shù)的話執(zhí)行效率可能會高一些,但是os.walk()邏輯簡單好寫,各位隨意,我干了!
以上這篇Python3.遍歷某文件夾提取特定文件名的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python為Excel單元格設(shè)置填充\背景色的操作方法(純色、漸變、圖案)
在使用Excel進行數(shù)據(jù)處理和分析時,對特定單元格進行背景顏色填充不僅能夠提升工作表的視覺吸引力,還能幫助用戶快速識別和區(qū)分不同類別的數(shù)據(jù),本文將通過三個示例詳細介紹如何使用Python在Excel中設(shè)置不同的單元格背景,需要的朋友可以參考下2024-08-08python3+pyqt5+itchat微信定時發(fā)送消息的方法
今天小編就為大家分享一篇python3+pyqt5+itchat微信定時發(fā)送消息的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02基于Python實現(xiàn)Excel轉(zhuǎn)Markdown表格
Markdown(也簡稱md)作為一種輕量級標記語言,因其易寫易讀,效果美觀大方,不僅被眾多網(wǎng)站使用,也是程序員們做筆記、寫文檔的首選。本文將利用Python實現(xiàn)Excel轉(zhuǎn)Markdown表格,感興趣的可以了解一下2022-04-04Python3 加密(hashlib和hmac)模塊的實現(xiàn)
本篇文章主要介紹了Python3 加密(hashlib / hmac)模塊的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11pandas創(chuàng)建DataFrame對象失敗的解決方法
本文主要介紹了pandas創(chuàng)建DataFrame對象失敗的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01