Python:用于递归打印文件和文件夹的输出

MxL*_*evs 1 python

我编写了一个python函数,递归打印出文件和文件夹,但现在我不知道如何以美学方式(纯文本)显示它.你如何显示你的文件夹结构?

unu*_*tbu 5

如果你编写一个函数来将目录结构作为嵌套列表返回,如下所示:

['DIR1/',['fileA','fileB','DIR3/',['fileE','fileF']],'DIR2/',['fileC','fileD']]
Run Code Online (Sandbox Code Playgroud)

然后你可以pprint.pformat用来创建一个可通过的字符串表示:

import pprint
import textwrap
import re

data=['DIR1/',['fileA','fileB','DIR3/',['fileE','fileF']],'DIR2/',['fileC','fileD']]
print(textwrap.dedent(re.sub(r"[\]\[',]", r' ',
                             pprint.pformat(data,indent=4,width=1))))
Run Code Online (Sandbox Code Playgroud)

产量

DIR1/  
    fileA  
    fileB  
    DIR3/  
        fileE  
        fileF    
DIR2/  
    fileC  
    fileD   
Run Code Online (Sandbox Code Playgroud)

注意:上面的代码假定您的文件和目录名称不包含任何字符,[]'...