用递归函数得到目录下的所有文件

用递归,获得所有文件目录

def read(path, n):
    file_list = os.listdir(path)    # (1)获取目录下所有文件和目录, 通过list返回
    for file in file_list:
        file_path = os.path.join(path, file)    # (2)将上级文件路径与文件拼接,返回文件路径
        if os.path.isdir(file_path):    # (2)判断文件是否是目录
            print('    '*n, file)
            read(file_path, n+1)
        else:
            print('    ' * n, file)


read('F:\书', 0)

没用递归,不能得到所有文件

file_list = os.listdir('F:\书')  # (1)获取目录下所有文件和目录, 通过list返回
# print(file_list)

for file in file_list:
    file_path = os.path.join('F:\书', file)  # (2)将上级文件路径与文件拼接,返回文件路径
    # print(file_path)
    if os.path.isdir(file_path):  # (2)判断文件是否是目录
        print("这是目录", file)
    else:
        print("这是文件", file)

 

用递归,获得文件夹的大小

class A:
    def __init__(self):
        self.flesize = 0

    def read(self, path):
        file_list = os.listdir(path)    # (1)获取目录下所有文件和目录, 通过list返回
        for file in file_list:
            file_path = os.path.join(path, file)    # (2)将上级文件路径与文件拼接,返回文件路径
            if os.path.isdir(file_path):    # (2)判断文件是否是目录
                self.flesize = self.flesize + os.path.getsize(file_path)
                self.read(file_path)
            else:
                self.flesize = self.flesize + os.path.getsize(file_path)
        return self.flesize


a = A()
size = a.read('F:\\')
print(size)

 用os.walk获取文件所有目录

import os
 
def file_name(file_dir): 
    for root, dirs, files in os.walk(file_dir):
        print(root) #当前目录路径
        print(dirs) #当前路径下所有子目录
        print(files) #当前路径下所有非目录子文件

  

posted @ 2019-01-08 08:39  平平无奇小辣鸡  阅读(293)  评论(0编辑  收藏  举报