Advertisement

python - 遍历某个文件夹下的所有子文件夹和文件名称

阅读量:

“只有提升维度,不断抽象,才能够看清低维度的事物的本质。” - 柏拉图-理想国

问题:

遍历系统某个文件夹下面的所有子文件夹和文件,输出子文件夹的文件的名称。

解决方案:

获取系统文件夹的路径,创建一个字典。

列出当前文件夹下的文件夹和文件,文件夹存储为字典的key1,文件存储为字典的key2。

遍历字典中的每一个文件夹和文件

讨论:

当文件/文件夹名称为汉字时,没有进行测试。

如何依据key,快速查找当前key及以该key为父目录的所有子目录和子文件,没有实现。

封装性不好,class和独立函数混合。

源代码:

复制代码
    # coding=utf-8
    
    from import from import import import class def __init__selfselfdef self'''显示当前路径下的文件夹和文件'''
        # print(os.listdir(self.path))
        self# print(os.walk(self.path))
        for in if self'\ ' elsereturn def if 0 len'dir'# 父目录下没有子目录
        return 0
    
    for in 'dir'# \ A
        '\ ' # \ A\ A1
        dict# abs_path绝对路径, dir_path相对路径
        'dir''file'# if 0 != len(dir_res[dir_path]['dir']): # 父目录下存在子目录
        #     for dir_son_path in dir_res[dir_path]['dir']:
        #         dir_path = dir_father_path + '\ ' + dir_son_path
        # 按实际情况进行递归
    
    def printfor in # 取字典中的key
        # print(len(key))
        len# print(list0)
    for in range0len11print'目录:'print'  包含目录:  ''dir'print'  包含文件:  ''file'if '__main__'# filename = '1.txt'
    # os.remove(filename)
    # print(os.getcwd())
    # f = open(filename, 'w+')
    # f.writelines('a\n')
    # f.writelines('ab\n')
    # f.writelines('abc\n')
    # f.close()
    # f = open(filename, 'r+')
    # print(f.readline())
    # print(f.readline())
    # print(f.readline())
    # print(f.readline())
    # print(f.readline())
    # f.close()
    
    # list = os.listdir(dir)  # 列出目录下的所有文件和目录
    # if os.path.isdir(filepath):  # 如果filepath是目录,则再列出该目录下的所有文件
    # os.path.isfile(path):
    # elif os.path:  # 如果filepath是文件,直接列出文件名
    # os.walk(path),遍历path,返回一个对象,
    # 他的每个部分都是一个三元组,
    # ('目录x',[目录x下的目录list],目录x下面的文件)
    # os.path.join(name)
    # path = sys.path[0]
    
    dict# 也可以 path = sys.path[0]
    '\A'
    
    dict'dir''file''''
    {'\ A\ A1\ A12\ A121': {'file': [], 'dir': []},
    '\ A\ A2\ A21\ A211': {'file': [], 'dir': []},
    '\ A\ A1': {'file': ['A11.txt', 'A12.txt'], 'dir': ['A11', 'A12']},
    '\ A\ A2\ A21': {'file': ['A211.txt'], 'dir': ['A211']},
    '\ A\ A3': {'file': [], 'dir': []},
    '\ A\ A2': {'file': [], 'dir': ['A21']},
    '\ A': {'file': ['A1.txt', 'A2.txt', 'A3.txt'], 'dir': ['A1', 'A2', 'A3']},
    '\ A\ A1\ A12': {'file': ['A121.txt'], 'dir': ['A121']},
    '\ A\ A1\ A11': {'file': ['A111.txt'], 'dir': []}}
    目录: \A
      包含目录:   ['A1', 'A2', 'A3']
      包含文件:   ['A1.txt', 'A2.txt', 'A3.txt']
    目录: \A\A1
      包含目录:   ['A11', 'A12']
      包含文件:   ['A11.txt', 'A12.txt']
    目录: \A\A2
      包含目录:   ['A21']
      包含文件:   []
    目录: \A\A3
      包含目录:   []
      包含文件:   []
    目录: \A\A1\A11
      包含目录:   []
      包含文件:   ['A111.txt']
    目录: \A\A1\A12
      包含目录:   ['A121']
      包含文件:   ['A121.txt']
    目录: \A\A2\A21
      包含目录:   ['A211']
      包含文件:   ['A211.txt']
    目录: \A\A1\A12\A121
      包含目录:   []
      包含文件:   []
    目录: \A\A2\A21\A211
      包含目录:   []
      包含文件:   []
    '''

全部评论 (0)

还没有任何评论哟~