詳解Python遍歷文件和文件路徑拼接
一、os.walk()文件(夾)讀取
遍歷指定路徑下的所有文件和文件夾
示例代碼如下
mdfFolder= "D:\hanshan\MDF" for root, dirs, files in os.walk(mdfFolder): # root為根目錄,即讀取的文件夾目錄(mdfFolder) print('root: ', root) # dirs為子文件夾,即當(dāng)前讀取的子文件夾 print('dirs: ', dirs) # files為讀取到的文件列表 print('files: ', files) # 當(dāng)前程序所在位置的路徑 print('current dir: ', os.getcwd())
二、os.path.join()文件路徑拼接
(跨系統(tǒng)也可用)
1. 介紹
在不同的操作系統(tǒng)種路徑的拼接符號(hào)是不一樣的,如Windows系統(tǒng)是\,Linux系統(tǒng)是/
為了程序能在不同系統(tǒng)中都能同樣執(zhí)行,在python種使用os.path.join可以自動(dòng)適配系統(tǒng)路徑符號(hào)
2. 使用
引入os庫(kù)
使用os.path.join()函數(shù)
傳入?yún)?shù),可以是兩個(gè)參數(shù)也可以是三個(gè)參數(shù)
2.1 兩個(gè)參數(shù)
兩個(gè)參數(shù)時(shí),第一個(gè)是路徑前綴(可通過(guò)os.getcwd()獲取當(dāng)前位置系統(tǒng)路徑),第二個(gè)參數(shù)是文件名
如os.path.join(os.getcwd(),'test.txt')
如果系統(tǒng)為windows,且當(dāng)前系統(tǒng)路徑為D:\Projects\demo,則拼接后的結(jié)果為D:\Projects\demo\test.txt
2.2 三個(gè)參數(shù)
三個(gè)參數(shù)時(shí),第一個(gè)是路徑前綴,第二個(gè)是相對(duì)路徑(即中間的路徑),第三個(gè)參數(shù)是文件名
如os.path.join(os.getcwd(),'TEST','test.txt')
如果系統(tǒng)為windows,且當(dāng)前系統(tǒng)路徑為D:\Projects\demo,則拼接后的結(jié)果為D:\Projects\demo\TEST\test.txt
3. 示例代碼
具體的參考代碼可參考以下
# 用于獲取文件的系統(tǒng)路徑 import os # 讀取本地文件夾種的mdf文件列表 def readMdfFolder(mdfFolder): # 所有文件的全路徑列表 fullPathList = [] for root, dirs, files in os.walk(mdfFolder): # root為根目錄,即讀取的文件夾目錄(mdfFolder) print('root: ', root) # dirs為子文件夾,即當(dāng)前讀取的子文件夾 print('dirs: ', dirs) # files為讀取到的文件列表 print('files: ', files) # 當(dāng)前程序所在位置的路徑 print('current dir: ', os.getcwd()) for file in files: # 文件全路徑合成,包含系統(tǒng)路徑和文件名,該拼接方式會(huì)根據(jù)操作系統(tǒng)路徑符號(hào)進(jìn)行拼接,注意,MDF為相對(duì)路徑,不加該參數(shù)則會(huì)將當(dāng)前程序所在系統(tǒng)路徑和文件名進(jìn)行拼接 fullPath = os.path.join(os.getcwd(), 'MDF', file) # 將文件路徑放入列表 fullPathList.append(fullPath) print("===========") # 將完整路徑的列表打印 print(fullPathList) # 當(dāng)前位置的MDF文件夾 folder = "./MDF" # 調(diào)用方法讀取當(dāng)前位置的MDF文件夾 readMdfFolder(folder)
4. 打印結(jié)果
拼接后的結(jié)果如下
到此這篇關(guān)于詳解Python遍歷文件和文件路徑拼接的文章就介紹到這了,更多相關(guān)Python遍歷文件和路徑拼接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python return邏輯判斷表達(dá)式實(shí)現(xiàn)解析
這篇文章主要介紹了python return邏輯判斷表達(dá)式實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python從csv文件中讀取數(shù)據(jù)及提取數(shù)據(jù)的方法
這篇文章主要介紹了Python從csv文件中讀取數(shù)據(jù)并提取數(shù)據(jù)的方法,文中通過(guò)多種方法給大家講解獲取指定列的數(shù)據(jù),并存入一個(gè)數(shù)組中,每種方法通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-11-11Django 多表關(guān)聯(lián) 存儲(chǔ) 使用方法詳解 ManyToManyField save
今天小編就為大家分享一篇Django 多表關(guān)聯(lián) 存儲(chǔ) 使用方法詳解 ManyToManyField save,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08使用Ray集群簡(jiǎn)單創(chuàng)建Python分布式應(yīng)用程序
面對(duì)計(jì)算密集型的任務(wù),除了多進(jìn)程,就是分布式計(jì)算,如何用 Python 實(shí)現(xiàn)分布式計(jì)算呢?今天分享一個(gè)很簡(jiǎn)單的方法,那就是借助于 Ray2021-09-09Python無(wú)法安裝包的一種解決(Requirement already satisfied問(wèn)題)
這篇文章主要介紹了Python無(wú)法安裝包的一種解決(Requirement already satisfied問(wèn)題),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08