在Python的os模組中有兩個函數可應用

(1) os.walk()

os.walk(top, topdown=Ture, onerror=None, followlinks=False)

參數1_top: 根目錄下的每個資料夾(包含根目錄的資料夾), 產生3元組 [root, dirnames, filenames], 也就是[資料夾路徑(string), 子資料夾名稱(list), 檔案名稱(list)]

參數2_topdown: 預設為True, 可選擇為Ture或者不設定, 為Ture則優先訪問top目錄, 否則優先訪問top的子目錄

參數3_onerror: 可選擇為一個函數, 當walk發生異常時, 供調用, 假設報告這錯誤後, 將繼續walk, 或者拋出exception終止walk

參數4_followlinks: 可選擇設置為True, 將依序訪問目錄, 如果為False則優先訪問top的子目錄

 

補充:

假設根目錄dirpath為'./test/'

子資料夾為dirnames為'sub_test'

取得資料夾的完整路徑

os.path.join(dirpath, dirnames)

得到完整路徑為'./test/sub_test'

 

以下方檔案目錄做示範:

 

範例一:

import os

for root, dirs, files in os.walk(".", topdown=False):

    for name in files:

        print(os.path.join(root, name))  #根目錄+子資料夾路徑+檔案名稱

    for name in dirs:

        print(os.path.join(root, name)) #根目錄+子資料夾路徑

 

因為topdown為False,

故先訪問子資料夾後再輸出根目錄,

輸出結果如下:

 

範例二_取得特定檔案路徑:

output_File = []
for root, dirs, files in os.walk("."):
    for name in files:
        print(os.path.join(root, name))
        if os.path.splitext(name)[1] == '.jpg':
            output_File.append(os.path.join(root, name))
print('取得.jpg的檔案路徑: ', output_File)

 

輸出結果如下:

 

(2) os.listdir()

返回指定路徑下的檔案和資料夾列表

範例一:

import os

path = './'
dirs = os.listdir(path)
print(dirs)
 

輸出結果如下:

 

範例二:

import os

path = './'
dirs = os.listdir(path)
for file in dirs:
    print(file)

輸出結果如下:

 

 

arrow
arrow

    楓綺 發表在 痞客邦 留言(0) 人氣()