我有一个文件夹和子文件夹目录。我要做的是获取文件夹中的子文件夹数量,并使用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)
答案 0 :(得分:8)
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)
这是一个完整的实现并经过测试。它返回没有当前文件夹的子文件夹数。如果你想改变它,你必须把+ 1放在最后一行而不是注释的位置。
答案 1 :(得分:4)
我认为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)
这将为您提供给定路径中的目录数。
答案 2 :(得分:3)
回答:
如何获取文件夹中子文件夹的数量
您可以使用与os.path.isdir
类似的os.path.isfile
功能来计算目录。
答案 3 :(得分:3)
尝试以下方法:
import os.path
import glob
folder = glob.glob("path/*")
len(folder)
答案 4 :(得分:1)
我猜您正在寻找os.walk
。查看Python参考资料,它说:
os.walk(top, topdown=True, onerror=None, followlinks=False)
通过从上到下遍历树来生成目录树中的文件名 或自下而上。对于以目录顶部为根的树中的每个目录 (包括top本身),它产生一个3元组(
dirpath, dirnames, filenames
)。
因此,您可以尝试执行此操作以仅获取目录:
for root, dirs, files in os.walk('/usr/bin'):
for name in dirs:
print os.path.join(root, name)
count += 1