0

我有一段代码旨在分析目录中的多个文件并根据请求输出各种详细信息。我试图弄清楚如何实现类似直方图的系统来显示这些数据。

目前我的输出看起来像这样..

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

我该怎么做呢?据我所见,大多数人都觉得从那里进口countercollections要走的路。

这就是那段代码的样子..

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))))

干杯!

4

1 回答 1

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))
于 2013-05-30T03:38:54.513 回答