我有一个删除整个目录及其子文件夹的python脚本,我想打印出删除的文件和文件夹的数量。目前,我已经从2010年提出的一个不同的问题中找到了一些代码,但我收到的答案是16 ...如果我右键单击该文件夹,则表明该文件包含152个文件,72个文件夹......
我目前检查目录的代码;
import os, getpass
user = getpass.getuser()
copyof = 'Copy of ' + user
directory = "C:/Documents and Settings/" + user
print len([item for item in os.listdir(directory)])
如何扩展它以显示实际存在的相同数量的文件和文件夹?
答案 0 :(得分:3)
要执行递归搜索,您可以使用os.walk。
os.walk(top,topdown = True,onerror = None,followlinks = False)
通过从上到下或从下到上走树来生成目录树中的文件名。对于以树为根的树中的每个目录 目录顶部(包括顶部本身),它产生一个3元组(dirpath, dirnames,filenames)。
样本用法:
import os
dir_count = 0
file_count = 0
for _, dirs, files in os.walk(dir_to_list_recursively):
dir_count += len(dirs)
file_count += len(files)
答案 1 :(得分:0)
我能够通过octoback使用以下代码解决这个问题(直接复制);
import os
cpt = sum([len(files) for r, d, files in os.walk("G:\CS\PYTHONPROJECTS")])