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”。然而無(wú)論是用os.path還是”\n”連接列表元素,最后用windows記事本打開都一樣換行,但是用vs code打開的話os.path會(huì)多換一行即看上去一行間一行,這里面到底為啥有點(diǎn)說(shuō)到,可能和Python的write機(jī)制有關(guān),暫時(shí)不深究(留坑)。
關(guān)于文件讀寫,大多數(shù)資料推薦with as形式,確實(shí)更簡(jiǎn)潔一點(diǎn)。
PS:
說(shuō)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)文章
Diango + uwsgi + nginx項(xiàng)目部署的全過(guò)程(可外網(wǎng)訪問(wèn))
這篇文章主要給大家介紹了關(guān)于Diango + uwsgi + nginx項(xiàng)目部署的全過(guò)程(可外網(wǎng)訪問(wèn)),文中通過(guò)示例代碼將部署的過(guò)程介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
Python 實(shí)現(xiàn)鏈表實(shí)例代碼
這篇文章主要介紹了Python 實(shí)現(xiàn)鏈表實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-04-04
一文詳解Python灰色預(yù)測(cè)模型實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Python灰色預(yù)測(cè)模型實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Python基礎(chǔ)知識(shí)之推導(dǎo)式詳解
這篇文章主要介紹了Python基礎(chǔ)知識(shí)之推導(dǎo)式詳解,Python推導(dǎo)式是一種簡(jiǎn)潔高效的代碼編寫方式,可以用一行代碼來(lái)創(chuàng)建列表、集合、字典等復(fù)雜數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2023-07-07
python訪問(wèn)mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法(2則示例)
這篇文章主要介紹了python訪問(wèn)mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了兩種Python操作MySQL數(shù)據(jù)庫(kù)的相關(guān)技巧,需要的朋友可以參考下2016-01-01
Python OpenCV特征檢測(cè)之特征匹配方式詳解
OpenCV中提供了兩種技術(shù)用于特征匹配,分別為Brute-Force匹配器和基于FLANN的匹配器。本文將為大家詳細(xì)介紹一下這兩種匹配方式,需要的可以參考一下2021-12-12

