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)
还没有任何评论哟~
