我目前有这个:
import os
def list_files(startpath):
for root, dirs, files in os.walk(startpath):
level = root.replace(startpath, '').count(os.sep)
indent = ' ' * 4 * (level)
print("F"+'{}{}/'.format(indent, os.path.basename(root)))
subindent = ' ' * 4 * (level + 1)
for f in files:
print("D"+'{}{}'.format(subindent, f))
list_files('.')
现在的问题是我需要这样做: 制作一个可执行的Python脚本,该脚本将打印文件树,如下所示:
D或F [文件名/目录名] [目录中的文件大小/计数文件]
我只需要添加一个,但是我不知道如何: 目录中的文件大小或文件数
我想改进的地方是,您也可以在执行
要求输入之前自行选择位置。location = input("Location: ")
应递归扫描此位置的目录,并将其显示在树中。 如果有人可以帮助我,那将非常有用!
预先感谢
〜Blackd00r
答案 0 :(得分:0)
此问题的解决方案是:
我为文件和目录添加了一个计数器,它们都从0开始。在forloop中,我们添加了dir的长度,以便可以计算总数。
打印({}个文件夹中的“ {}个文件”。format(filecount,dircount))
import os
def list_files(startpath):
dircount = 0
filecount = 0
for root, dirs, files in os.walk(startpath):
dircount += len(dirs)
filecount += len(files)
level = root.replace(startpath, '').count(os.sep)
indent = ' ' * 4 * (level)
print("D"+'{}{}/'.format(indent, os.path.basename(root)))
subindent = ' ' * 4 * (level + 1)
for f in files:
path = os.path.join(root, f)
size = os.stat(path).st_size
print("F"+'{}{} ({} bytes)'.format(subindent, f, size))
print("{} files in {} folders".format(filecount, dircount))
list_files('.')