文件目錄遍歷
阿新 • • 發佈:2017-05-20
pytho byte 返回 walk 遍歷文件 string Coding true 如果
os.walk()
os.walk(top,topdown=True,onerror=None)
top:需要遍歷的頂級目錄路徑
topdown:默認值“True”,首先返回頂級目錄下的文件,然後再遍歷子目錄中的文件。"False":先遍歷子目錄中的文件,然後再返回頂級目錄下的文件。
onerror默認值"None",忽略文件遍歷時的錯誤。
返回一個三元tupple(dirpath, dirnames, filenames),第一個為起始路徑,第二個為起始路徑下的文件夾,第三個是起始路徑下的文件。
dirpath:string,目錄的路徑。
dirnames:list,dirpath下所有子目錄的名字。
filename:list,非目錄文件的名字。
這些名字不包含路徑信息,如果需要得到全路徑,需要使用os.path.join(path, name),通過for循環遍歷所有文件。
#!/usr/bin/env python # _*_ coding:utf-8 _*_ import os for path,dirs,filelist in os.walk(r‘D:\用戶目錄\下載‘): for filename in filelist: print(os.path.join(path,filename))
遍歷文件夾並刪除特定格式文件
#!/usr/bin/python# -*- coding: utf-8 -*- import os def del_files(path): for root , dirs, files in os.walk(path): for name in files: if name.endswith(".tmp"): os.remove(os.path.join(root, name)) print ("Delete File: " + os.path.join(root, name)) if __name__ == "__main__": path= ‘/tmp‘ del_files(path)
獲取文件夾大小
os.path.getsize,參數是文件路徑。
#!/usr/bin/env python # _*_ coding:utf-8 _*_ import os from os.path import join, getsize def getdirsize(dir): size = 0 for path, dirs, files in os.walk(dir): for filename in files: size += getsize(os.path.join(path, filename)) print(os.path.join(path, filename)) return size if __name__ == ‘__main__‘: filesize = getdirsize(r‘D:\用戶目錄\下載‘) print(‘Ther are %.1f‘ % (filesize/1024/1024), ‘Mbytes.‘)
文件目錄遍歷