Python小點dian兒: 讀取一個目錄下目錄和文件

目錄

 

代碼一: 輸出文件目錄相關內容

代碼二:輸出一個目錄下所有文件名字(第一層)

代碼三:返回當前路徑下所有層的文件路徑列表

代碼四:依次從內層到外層獲取當前路徑下文件(改造自代碼三),也可直接代碼一獲取

代碼五:獲取當前路徑下一層指定後綴文件列表(多層可改造代碼三)


代碼一: 輸出文件目錄相關內容

 os.walk(file_dir)從外到內獲取多層

# -*- coding: utf-8 -*-   
      
    import os  
      
    def file_name(file_dir):   
        for root, dirs, files in os.walk(file_dir):  
            print(root) #當前目錄路徑  
            print(dirs) #當前路徑下所有子目錄  
            print(files) #當前路徑下所有非目錄子文件

代碼一會從外到內,將文件夾三個內容一層一層的輸出。

代碼二:輸出一個目錄下所有文件名字(第一層)

os.listdir(rootdir) 當前層

 os.path.isfile(list[i]):#判斷是否是文件

#獲取一個路徑下第一層,所有文件名列表
def get_filenames(file_dir):
    L=[]
    list = os.listdir(rootdir) #列出文件夾下所有的目錄與文件
    for i in range(0,len(list)):
        if os.path.isfile(list[i]):#判斷是否是文件
            L.append(os.path.join(file_dir,list[i]))

代碼三:返回當前路徑下所有層的文件路徑列表

os.path.isdir(file_path)判斷是否是目錄(文件夾)

# -*- coding: utf-8 -*-
import os

def listdir(path, list_name):  #傳入存儲的list
    for file in os.listdir(path):
        file_path = os.path.join(path, file)
        if os.path.isdir(file_path):
            listdir(file_path, list_name)
        else:
            list_name.append(file_path)
    print(list_name)#雖然打印出來,但是最後的打印纔是return的最後結果
    return list_name

list_name=[] #需要在外層定義,才能獲取當前路徑所有文件名,試想在內層定義會如何
list_name=listdir(rootdir, list_name)#返回當前路徑下所有文件路徑列表

#['E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\10_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\11_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\12_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\13_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\14_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\15_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\16_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\17_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\18_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\19_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\10_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\11_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\12_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\13_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\14_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\15_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\16_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\17_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\18_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\19_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\1_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\20_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\21_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\22_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\24_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\2_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\3_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\4_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\5_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\6_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\7_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\8_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\9_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\test\\test.py']
#['E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\10_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\11_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\12_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\13_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\14_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\15_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\16_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\17_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\18_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\19_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\10_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\11_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\12_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\13_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\14_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\15_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\16_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\17_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\18_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\19_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\1_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\20_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\21_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\22_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\24_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\2_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\3_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\4_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\5_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\6_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\7_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\8_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\9_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\test\\test.py']
#['E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\10_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\11_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\12_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\13_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\14_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\15_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\16_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\17_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\18_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\19_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\10_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\11_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\12_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\13_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\14_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\15_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\16_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\17_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\18_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\19_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\1_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\20_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\21_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\22_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\24_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\2_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\3_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\4_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\5_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\6_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\7_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\8_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\9_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\test\\test.py', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24.zip', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\20_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\21_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\22_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\23_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\24_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\25_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\26_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\27_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\28_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\29_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\2_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\3_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\4_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\5_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\6_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\7_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\8_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\9_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\fen.py', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\__init__.py']

代碼四:依次從內層到外層獲取當前路徑下文件(改造自代碼三),也可直接代碼一獲取

def listdir(path): 
    list_name = []
    for file in os.listdir(path):
        file_path = os.path.join(path, file)
        if os.path.isdir(file_path):
            listdir(file_path)
        else:
            list_name.append(file_path)
    print(list_name)
    return list_name


list_name=listdir(rootdir)
#['E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\test\\test.py']
#['E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\10_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\11_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\12_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\13_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\14_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\15_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\16_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\17_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\18_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\19_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\1_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\20_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\21_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\22_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\24_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\2_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\3_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\4_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\5_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\6_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\7_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\8_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24\\9_fact.txt']
#['E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\10_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\11_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\12_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\13_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\14_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\15_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\16_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\17_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\18_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\19_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_24.zip', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\1_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\20_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\21_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\22_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\23_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\24_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\25_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\26_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\27_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\28_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\29_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\2_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\3_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\4_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\5_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\6_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\7_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\8_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\9_fact.txt', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\fen.py', 'E:\\Mypython3\\wenshu_my\\data_my\\fen_200\\__init__.py']

#可接着仿照代碼三,外部定義一個列表存儲不同文件夾下list_name

代碼五:獲取當前路徑下一層指定後綴文件列表(多層可改造代碼三)

import os
#獲取一個路徑下第一層,相同後綴的文件名列表
#獲取所有標註文件
def get_filenames(rootdir):
    L=[]
    list = os.listdir(rootdir) #列出文件夾下所有的目錄與文件
    for i in range(0,len(list)):
        if os.path.splitext(list[i])[1] == '.txt':
            path = os.path.join(rootdir,list[i])
            L.append(path)
    return L
#其中os.path.splitext()函數將路徑拆分爲文件名+擴展名
get_filenames(rootdir)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章