首页 > 解决方案 > 显示带有文件的路径树

问题描述

import os

path = "G:\krunker\mod"
abcde = open("path.txt", "w")

for dirpath, dirnames, filenames in os.walk(path):
    directory_level = dirpath.replace(path, "")
    directory_level = directory_level.count(os.sep)
    indent = " " * 4
    print("{}{}/".format(indent*directory_level, os.path.basename(dirpath)), file=abcde)

for f in filenames:
        print("{}{}".format(indent*(directory_level+1), f), file=abcde)

abcde.close()

我希望它打印路径的每个文件夹中的文件,但它只在最后一个

标签: pythonpathtree

解决方案


缩进不正确。第二个for循环也必须在第一个for循环内。

正确代码:

import os

path = "/home/user/my_folder/tools"
abcde = open("path.txt", "w")

for dirpath, dirnames, filenames in os.walk(path):
    directory_level = dirpath.replace(path, "")
    directory_level = directory_level.count(os.sep)
    indent = " " * 4
    print("{}{}/".format(indent*directory_level, os.path.basename(dirpath)), file=abcde)

    for f in filenames:
            print("{}{}".format(indent*(directory_level+1), f), file=abcde)

abcde.close()

path.txt 内容的一部分:

tools/
    .gitignore
    README.md
    __init__.py
    requirements3.txt
    test.py
    path.txt
    .git/
        description
        hooks/
            commit-msg.sample
        info/
            exclude
        refs/
            heads/
                master

推荐阅读