Python實(shí)現(xiàn)遍歷讀取文件或文件夾_第1頁(yè)
Python實(shí)現(xiàn)遍歷讀取文件或文件夾_第2頁(yè)
Python實(shí)現(xiàn)遍歷讀取文件或文件夾_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第Python實(shí)現(xiàn)遍歷讀取文件或文件夾目錄例子os.listdiros.walk遍歷讀取代碼搞機(jī)器學(xué)習(xí)或者深度學(xué)習(xí)算法很多時(shí)候需要遍歷某個(gè)目錄讀取文件,特別是經(jīng)常需要讀取某個(gè)特定后綴的文件,比如圖片的話可能需要讀取jpg,png,bmp格式的文件。python本身的庫(kù)函數(shù)功能沒(méi)有這么定制化,所以就需要再重新包裝一下。

例子

假設(shè)我們有如下的目錄結(jié)構(gòu),以bmp結(jié)尾的是文件,其他是文件夾。下面的程序都將以該目錄結(jié)構(gòu)為例進(jìn)行說(shuō)明。

os.listdir

os.listdir僅讀取當(dāng)前路徑下的文件和文件夾,返回一個(gè)列表。讀取demo目錄結(jié)構(gòu)的代碼和結(jié)果如下:

path=r'D:\data'

items=os.listdir(path)#==['1.bmp','2.bmp','a','b']

os.walk

os.walk本身已經(jīng)是遍歷讀取,包含所有的子文件(夾)但是其結(jié)果不像是os.listdir一樣是個(gè)list,而是一個(gè)比較復(fù)雜的數(shù)據(jù)體,難以直接使用,所以一般需要再處理一下。我們可以使用for語(yǔ)句將其打印出來(lái)看看:

path=r'D:\data'

#part1

foritemsinos.walk(path):

print(items)

#part2

formain_dir,sub_dir_list,sub_file_listinos.walk(path):

print(main_dir,sub_dir_list,sub_file_list)

結(jié)果為:

(D:\\data,[a,b],[1.bmp,2.bmp])

(D:\\data\\a,[],[a1.bmp])

(D:\\data\\b,[],[b1.bmp])

D:\data[a,b][1.bmp,2.bmp]

D:\data\a[][a1.bmp]

D:\data\b[][b1.bmp]

使用迭代器對(duì)os.walk()的結(jié)果進(jìn)行輸出,發(fā)現(xiàn)每一條包含三個(gè)部分(part1),在part2中,我們給三個(gè)部分分別起名為main_dir,sub_dir_list,sub_file_list,下面對(duì)其進(jìn)行簡(jiǎn)單解釋:

main_dir:遍歷得到的路徑下所有文件夾sub_dir_list:main_dir下面的文件夾sub_file_list:main_dir下面的文件

連接main_dir和sub_file_list中的文件可以得到路徑下的所有文件。

sub_dir_list在這里則沒(méi)有用處,我們無(wú)需再去遍歷sub_dir_list,因?yàn)樗鼈円呀?jīng)包含在main_dir里了。

遍歷讀取代碼

代碼邏輯如下:

需要有后綴辨別功能,并且能夠同時(shí)辨別多個(gè)后綴

需要有遞歸和非遞歸功能

返回的是以入?yún)ath為前綴的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論