實現這一目的方法有兩種:一是,利用 os.walk() ;二是,利用 listdir() 。
利用 os.walk() 可以讀取 file_dir 當前目錄路徑(root)、當前路徑下的所有子目錄(dirs)、當前路徑下的所有檔案(files)。
另外,利用 os.path.splitext() 可以將檔案的檔名和拓展名分開,並儲存在列表當中,即在列表中[0]為檔名,[1]為拓展名
import os
def file_name(file_dir):
"""讀取 file_dir 目錄下拓展名為'.hdf'的檔案"""
l= #建立列表用於儲存需讀取的檔名
for root, dirs, files in os.walk(file_dir):
#root為所在資料夾位置,
#dirs為該目錄下的資料夾
#files為該目錄下的檔案
for file in files:
if os.path.splitext(file)[1] == '.hdf': #將檔名和拓展名分開
return l
可以在下面的遞迴函式中體會該方法。
import os
filenames_list =
def get_filenames(path,filenames_list):
for file in os.listdir(path):
file_path = os.path.join(path,file)
if os.path.isdir(file_path):
get_filenames(file_path,filenames_list)
else:
get_filenames('h:/mark/mark_1',filenames_list)
for filename in filenames_list:
print(filename)
函式 get_filenames(path,filenames_list) 將 path 目錄下的檔案以及該路徑下子目錄中的檔案新增到 filenames_list 列表中去。其中 listdir() 獲取 path 路徑下的所有檔名和資料夾名;join(path,file) 獲取路徑(path)下檔案(file)的路徑;isdir(file_path)判斷路徑(file_path)指向的物件是否為資料夾 C 刪除乙個檔案目錄下的所有檔案以及目錄
bool doremovedirectory cstring chrdirname bool releasedirectory cstring chrdirname end of civmsvrinfo releasedirectory bool doremovedirectory cstring ...
VC 刪除乙個檔案目錄下的所有檔案以及目錄
1 bool doremovedirectory cstring chrdirname 23 bool releasedirectory cstring chrdirname 4 end of civmsvrinfo releasedirectory 1415 bool doremovedirect...
Python讀取乙個目錄下的所有檔案
usr bin python coding utf8 import os allfilenum 0 defprintpath level,path global allfilenum 列印乙個目錄下的所有資料夾和檔案 所有資料夾,第乙個欄位是次目錄的級別 dirlist 所有檔案 filelist ...