我编写了一个python函数,以递归方式打印出文件和文件夹,但现在我不确定如何以美学方式显示它(以纯文本形式)。如何显示文件夹结构?
答案 0 :(得分:5)
如果你编写一个函数来将目录结构作为嵌套列表返回,如下所示:
['DIR1/',['fileA','fileB','DIR3/',['fileE','fileF']],'DIR2/',['fileC','fileD']]
然后您可以使用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))))
产量
DIR1/
fileA
fileB
DIR3/
fileE
fileF
DIR2/
fileC
fileD
注意:上面的代码假定您的文件和目录名称不包含任何字符,[]'
...
答案 1 :(得分:2)
您是在寻找纯文本命令行显示还是GUI?
对于命令行显示,只需使用递归函数将“缩进”变量传递给递归调用,为每个级别增加它:
toplevel/
level2/
file.txt
file2.txt
level2_again/
file3.txt
对于GUI - 使用相关框架提供的小部件。例如,PyQt
有QTreeView
小部件。