簡易統計Python有効コード行数
4107 ワード
时にはソースコードやpyファイルを见る时、有効なコードの行数がどれだけあるかを知りたいです.つまり、注釈以外のすべての行数、例えばrequestsソースコードの中で、sessions.pyファイル、注釈付きで712行(更新があるかどうか分かりません...)があります.注釈を除いて统计の行数は326行で、ほら、これは一気に半分以上少なくなって、ソースコードがもっと动力があるかどうかを见ます....(私が使用しているバージョンrequestsは注釈を除いて2146行です(使用しているpackagesのパッケージは含まれていません))
以下は私の実装コードです.参考にしてください.
以下は私の実装コードです.参考にしてください.
# -*- coding: utf-8 -*-
# @Author: xiaodong
# @Date: 2017-12-18 18:54:56
# @Last Modified by: xiaodong
# @Last Modified time: 2017-12-18 19:05:10
'''
Python
'''
def count_code_nums(file):
"""
:param file: ,.py
:rtype :int
"""
with open(file,encoding='utf-8') as data:
count, flag = 0, 0
begin = ('"""', "'''")
for line in data:
line2 = line.strip()
if line2.startswith('#'):continue
elif line2.startswith(begin):
if line2.endswith(begin) and len(line2) > 3:
flag = 0
continue
elif flag == 0:
flag = 1
else:
flag = 0
continue
elif flag == 1 and line2.endswith(begin):
flag = 0
continue
if flag == 0 and line2:
count += 1
return count
def detect_rows(begin=0, root='.'):
"""
py
:param begin: , 0
:param root: ( )
:rtype :int
"""
import os, glob
for file in glob.glob(os.path.join(root, '*')):
if os.path.isdir(file):
begin += detect_rows(0, file)
elif file.endswith('.py'):
begin += count_code_nums(file)
return begin
if __name__ == '__main__':
print (count_code_nums(__file__))
print (detect_rows())