 
                        最近在学python,写了一个小脚本,基本功能就是遍历显示指定路径下的所有文件夹、文件,根据层级在显示内容前面加"--"。
但是不管怎么样,输出只有第一层的所有文件和文件夹,仔细的审查了好几遍代码,就是找不出原因在哪,求大神告知问题所在,以下是代码内容:
import os
rootpath = input("请输入目录:")
catedir = os.listdir(rootpath)
def prt_dir_files(catedir, is_indent=True, level=0):
    print(rootpath)
    for each_item in catedir:
        if os.path.isdir(each_item):
            print(each_item)
            prt_dir_files(os.listdir(each_item), is_indent, level+1)
        else:
            if is_indent:
                print("--" * level, end="")
            print(each_item)
prt_dir_files(catedir)Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
關鍵的問題出在, 路徑不對,
listdir拿到的只是目錄底下的 文件名, 而不是 文件的路徑。所以必須要使用
os.path.join來製造出完整的路徑。根據以上說明我改了一下你的代碼:
使用
os.walk也是個不錯的主意, 以下範例:我回答過的問題: Python-QA
os.path.isdir(each_item):
这个函数用法有问题