生成文件列表

时间:2012-09-29 18:19:59

标签: python file

我在这里有这个代码......它在目录中生成一个文件和文件夹列表

import os
for x in os.listdir("C:\Users"):
    text = text + "\n" + x
f = open("List.txt", "w")
f.write(text)
f.close()

但我怎么能让它做两件事......

首先好好阅读文件夹中的内容并继续操作,直到只有一个孩子。

其次,当它下降一个级别时,它会添加一个标签。喜欢这个

Level 1 (parent)
    Level 2 (child)

如何将其添加到该标签中?无限量的水平?

1 个答案:

答案 0 :(得分:3)

改为使用os.walk()

start = r'C:\Users'
entries = []
for path, filenames, dirnames in os.walk(start):
    relative = os.path.relpath(path, start)
    depth = len(os.path.split(os.pathsep))
    entries.extend([('\t' * depth) + f for f in filenames])
with open("List.txt", "w") as output:
    output.write('\n'.join(entries))

在每个循环中,path是文件名和目录名直接包含在目录中的完整路径。通过使用os.path.relpath,我们提取“本地”路径,计算深度并将其用于用于在每个文件名前加上的标签数。