欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python文件遍歷os.walk()與os.listdir()使用及說明

 更新時(shí)間:2022年11月16日 10:18:54   作者:KGzhang  
這篇文章主要介紹了Python文件遍歷os.walk()與os.listdir()使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Python文件遍歷os.walk()與os.listdir()

在圖片處理過程中,樣本數(shù)據(jù)的組織是個(gè)常見的問題,樣本組織好了,后面數(shù)據(jù)轉(zhuǎn)換、讀取等都能得心應(yīng)手。

在這里講一下我在準(zhǔn)備樣本時(shí)的一些心得

首先是os.walk()函數(shù)

os.walk(path)返回三個(gè)值:

  • parent
  • dirnames
  • filenames

分別表示path的路徑、path路徑下的文件夾的名字和path路徑下文件夾以外的其他文件;

我用下面的代碼來對(duì)樣本圖片建立標(biāo)簽:

不過不知walk到底是怎么遍歷的,我生成的標(biāo)簽順序亂了

所以這就想到用listdir來重新做標(biāo)簽:

os.listdir(path)返回一個(gè)包含path路徑下所有文件的列表

我用下面的方法來建立標(biāo)簽:

不過還是之前一樣的亂序,最后采用sort():

先獲取文件夾下圖片文件的名字列表list,再對(duì)圖片的序號(hào)進(jìn)行排序,將排序好的文件名列表逐一寫入txt中

os.walk和os.listdir遍歷目錄比較

假設(shè)存在下面的目錄和文件結(jié)構(gòu):

/a ----> /b ----> 1.py,2.py

    ----> /c  ----> 3.py , 4.py

    ----> 5.py

    ----> 6.py

os.walk()

運(yùn)行下面的測試代碼

import os
for root, dirs, files in os.walk('../a'): ?# 指向當(dāng)前的測試文件夾
? ? print(root)
? ? print(dirs)
? ? print(files)

輸出結(jié)果,我們解析一下輸出結(jié)果

../a                  # 當(dāng)前遍歷的根目錄 
['b', 'c']            # 根目錄下的兩個(gè)子目錄b,c
['5.py', '6.py']      # 根目錄下的兩個(gè)子文件
../a\b                # 遍歷根目錄下的子目錄b
[]                    # 子目錄b中的子目錄
['1.py', '2.py']      # 子目錄b中的文件
../a\c                # 遍歷根目錄下的子目錄c
[]                    # 子目錄c中的子目錄
['3.py', '4.py']      # 子目錄c中的文件

os.listdir()

運(yùn)行如下測試代碼

for f in os.listdir('../a'):
? ? print(f)

輸出結(jié)果

5.py
6.py
b
c

兩種方法比較

os.walk將當(dāng)前目錄下的所有子目錄及其中的內(nèi)容,都會(huì)遍歷到;而os.listdir只會(huì)遍歷當(dāng)前目錄中所包含的內(nèi)容。當(dāng)存在如下的目錄級(jí)別時(shí)

/a  ---->   /b ------> b1.txt  b2.txt

     ---->   /c  ------> c1.txt  c2.txt

     ---->   /d  ------> d1.txt d2.txt

當(dāng)我們想要將所有的txt文件提取出來,此時(shí)使用os.walk是最好的選擇,直接將files遍歷即可,因?yàn)閒iles在其父目錄成為根目錄時(shí),會(huì)將當(dāng)前文件夾中的所有files遍歷出來,即:

import os?
for root, dirs, files in os.walk('./a'):
? ? for file in files:
? ? ? ? print(file)

#運(yùn)行結(jié)果
b1.txt
b2.txt
c1.txt
c2.txt

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論