zoukankan      html  css  js  c++  java
  • 用递归函数得到目录下的所有文件

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

    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) #当前路径下所有非目录子文件
    

      

  • 相关阅读:
    [再寄小读者之数学篇](2014-06-19 满足三个积分等式的函数)
    [再寄小读者之数学篇](2014-06-19 微分等式的结论)
    我的一些武功
    TEX学习笔记
    我的一些诗词
    我的课程与学生
    [再寄小读者之数学篇](2014-06-19 三维插值公式)
    [再寄小读者之数学篇](2014-06-19 旋度公式)
    JAVA小项目实例源码—学习娱乐小助手
    可拖拽的3D盒子
  • 原文地址:https://www.cnblogs.com/chen55555/p/10236929.html
Copyright © 2011-2022 走看看