我有一段代码用于分析目录中的多个文件,并根据请求输出各种详细信息。我正在试图弄清楚如何实现像系统这样的直方图来显示这些数据。
目前我的输出看起来像这样..
Metric of interest? lines_of_code
lines_of_code 8
lines_of_code 23
当我想要达到这个结果时..
Metric of interest? lines_of_code
Bin range Count
0-9 1
20-29 1
我该怎么做呢?从我所看到的情况来看,大多数人觉得从counter
导入collections
就好了。
这就是代码片段的样子..
elif metric_choice == 'lines_of_code':
for files in os.listdir("."):
if files.endswith(".py"):
file_open = open(files, "r")
file_contents = file_open.readlines()
print("{0:20} {1}".format("lines_of_code", (len(file_contents))))
干杯!
答案 0 :(得分:4)
import glob
import collections
counter = collections.Counter()
for py_filename in glob.glob('*.py'):
with open(py_filename) as f:
linecount = sum(1 for line in f)
counter[linecount//10] += 1
for i,n in sorted(counter.items()):
print('{}-{}: {}'.format(i * 10, (i + 1) * 10 - 1, n))