python遍歷資料夾並實現分級縮排顯示

2021-07-09 10:17:42 字數 1434 閱讀 5457

剛開始學習python,最近有個需求,其中一部分是遍歷指定的資料夾,找出其中所有的子檔案。

資料夾的遍歷主要是通過os庫中的相關方法實現的。在遍歷中需要用到的方法:

os.listdir(dirpath)-------列出dirpath中所有的目錄和檔案,只列出本級目錄;

os.path.join(path, child)-------連線指定的目錄和檔名,形成完成的路徑;

os.path.isdir(path)-------判斷path是否為資料夾,返回true或false,類似的還有isfile()方法;

遍歷的思路:

取出指定目錄中的所有檔案或資料夾,放入列表(list)parent--------判斷parent中每乙個元素是否為資料夾,如是則遞迴,如不是,則新增至結果列表result中。

在編寫**的過程中新增了分級列印功能, 採用遞迴的思想實現。

import os

"""該方法可以將指定目錄中的所有檔案和資料夾分層級顯示出來,同時以list返回目錄中的所有檔案(包含子檔案)。

有三個引數,第乙個引數必選,是要獲取的目錄絕對路徑

第二個引數可選,為列印的起始縮排,函式內部的迭代中使用,一般保持其實預設值0

第三個引數可選,儲存返回的結果,一般不用指定"""

def get_file(fpath, level=0, mfile_list=none):

if mfile_list == none:

mfile_list =

##列出指定根目錄下的所有檔案和資料夾

parent = os.listdir(fpath)

for child in parent:

child_path = os.path.join(fpath, child)

if os.path.isdir(child_path):

for i in range(level):

print("----", end = "")

print(child)

get_file(child_path, level+1)

else:

for i in range(level):

print("----", end = "")

print(child)

return mfile_list

if __name__ == "__main__":

path = input("請輸入目錄絕對路徑: ")

if os.path.isdir(path):

get_file(path)

else:

print("路徑有誤!")

執行結果如下:

python 遍歷資料夾

在python中,檔案操作主要來自os模組,主要方法如下 os.listdir dirname 列出dirname下的目錄和檔案 os.getcwd 獲得當前工作目錄 os.curdir 返回當前目錄 os.chdir dirname 改變工作目錄到dirname os.path.isdir nam...

python 遍歷資料夾

1.遍歷資料夾 import os import os.path rootdir d data 指明被遍歷的資料夾 for parent,dirnames,filenames in os.walk rootdir 三個引數 分別返回1.父目錄 2.所有資料夾名字 不含路徑 3.所有檔案名字 for ...

python 遍歷資料夾

import os import os.path rootdir r d data 指明被遍歷的資料夾 for parent,dirnames,filenames in os.walk rootdir 三個引數 分別返回1.父目錄 2.所有資料夾名字 不含路徑 3.所有檔案名字 for dirnam...