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

どうすればこれを行うことができますか?私が見た限りでは、ほとんどの人はcounterfrom からインポートするのが良いと感じてい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))))

乾杯!

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 に答える