我有一个文件夹test
,我想从中计算 的数量projects
, buildings
并txt_files
遵循以下规则。
的个数projects
,就等于第一层子目录的子文件夹个数。的个数buildings
,如果没有第二层子目录,则等于第一层子目录的个数,否则,计算第二层子目录。
├─a
│ ├─a1
│ ├─a2
│ └─a3
│ ├─a3_1.txt
│ ├─a3_2.geojson
│ └─a3_3.txt
├─b
│ ├─b1
│ ├─b2
│ ├─b3
│ └─b4
├─c
│ ├─c1
│ ├─c2
│ └─c3
├─d
└─123.txt
对于以下示例结构:num_projects
is4
其中包含第一层子文件夹:a, b, c, d
; while num_buildings
is 11
, 其中包含子目录: a1, a2, a3, b1, b2, b3, b4, c1, c2, c3 and d
; 并且num_txt
是3
。
到目前为止我的解决方案:
import os
path = os.getcwd()
num_projects = 0
num_buildings = 0
num_txt = 0
for subdirs in os.listdir(path):
num_projects += 1
for root, dirnames, filenames in os.walk(path):
for dirname in dirnames:
num_buildings += 1
for filename in filenames:
if filename[-4:] == ".txt":
num_txt += 1
print("Number of projects is %d, number of buildings is %d, number of txt files is %d." %(num_projects, num_buildings, num_txt))
输出:
Number of projects is 5, number of buildings is 17, number of txt files is 3.
num_projects
和num_buildings
是错误的。我怎样才能使它正确?谢谢。