我有一个文件夹和子文件夹的目录.我要做的是获取文件夹中的子文件夹数量,并使用matplotlib在散点图上绘制它们.我有代码来获取文件的数量,但我如何获得文件夹中的子文件夹数量.这可能有一个简单的答案,但我是Python的新手.任何帮助表示赞赏.
这是我到目前为止获得文件数量的代码:
import os
import matplotlib.pyplot as plt
def fcount(path):
count1 = 0
for f in os.listdir(path):
if os.path.isfile(os.path.join(path, f)):
count1 += 1
return count1
path = "/Desktop/lay"
print fcount(path)
Run Code Online (Sandbox Code Playgroud)
import os
def fcount(path, map = {}):
count = 0
for f in os.listdir(path):
child = os.path.join(path, f)
if os.path.isdir(child):
child_count = fcount(child, map)
count += child_count + 1 # unless include self
map[path] = count
return count
path = "/Desktop/lay"
map = {}
print fcount(path, map)
Run Code Online (Sandbox Code Playgroud)
这是一个完整的实现并经过测试.它返回没有当前文件夹的子文件夹数.如果你想改变它,你必须把+ 1放在最后一行而不是注释的位置.
我认为 os.walk 可能是你正在寻找的:
import os
def fcount(path):
count1 = 0
for root, dirs, files in os.walk(path):
count1 += len(dirs)
return count1
path = "/home/"
print fcount(path)
Run Code Online (Sandbox Code Playgroud)
这将为您提供给定路径中的目录数。