1. 程式人生 > >文件目錄遍歷

文件目錄遍歷

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(rD:\用戶目錄\下載):
    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(rD:\用戶目錄\下載)
    print(Ther are %.1f % (filesize/1024/1024), Mbytes.)

文件目錄遍歷