Python——查看目錄下所有的目錄和文件


寫程序我們經常會遇到需要遍歷某一個目錄下的所有文件這個操作,然而python有現成的庫,只需要2個循環就可以搞定。

 

 1 import os
 2 
 3 def all_path(dirname):
 4 
 5     result = []#所有的文件
 6 
 7     for maindir, subdir, file_name_list in os.walk(dirname):
 8 
 9         print("1:",maindir) #當前主目錄
10         print("2:",subdir) #當前主目錄下的所有目錄
11         print("3:",file_name_list)  #當前主目錄下的所有文件
12 
13         for filename in file_name_list:
14             apath = os.path.join(maindir, filename)#合並成一個完整路徑
15             result.append(apath)
16 
17     return result
18 
19 print(all_path("E:\myTest"))

 

 

程序運行結果如下:

  ['E:\\myTest\\kuang3.png',  'E:\\myTest\\txt1.txt',  'E:\\myTest\\txt2.txt',  'E:\\myTest\\YYGB1.png',  'E:\\myTest\\YYGB2.png',  'E:\\myTest\\test1\\txt11.txt',  'E:\\myTest\\test2\\txt21.txt',  'E:\\myTest\\test2\\txt22.txt' ]

 

 

當然現在我們是獲取了所有的文件,如果我們只想要某一個類型的文件,那么也很簡單,寫個過濾就好了。所以修改后的代碼如下:

 

import os

filter=[".txt"] #設置過濾后的文件類型 當然可以設置多個類型

def all_path(dirname):

    result = []#所有的文件

    for maindir, subdir, file_name_list in os.walk(dirname):

        # print("1:",maindir) #當前主目錄
        # print("2:",subdir) #當前主目錄下的所有目錄
        # print("3:",file_name_list)  #當前主目錄下的所有文件

        for filename in file_name_list:
            apath = os.path.join(maindir, filename)#合並成一個完整路徑
            ext = os.path.splitext(apath)[1]  # 獲取文件后綴 [0]獲取的是除了文件名以外的內容

            if ext in filter:
                result.append(apath)

    return result

print(all_path("E:\myTest"))

#運行結果
#['E:\\myTest\\txt1.txt', 'E:\\myTest\\txt2.txt', 'E:\\myTest\\test1\\txt11.txt', 'E:\\myTest\\test2\\txt21.txt', 'E:\\myTest\\test2\\txt22.txt']

或者

def list_files(self, path):
        files = [] list_dir = os.walk(path) for maindir, subdir, all_file in list_dir: for filename in all_file: apath = os.path.join(maindir, filename) if apath.endswith('.txt'): files.append(apath)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM