Python3 统计代码 - 练手小程序(一)

引言

计算代码行数,看看自己项目的规模,不知道自己项目的规模,怎么好吹牛逼呢?

说起来,我也是维护过三百万代码量的项目的人。(我吹个牛逼,应该不至于骂我吧)

你知我长短,我知你深浅,知己知彼,知己知彼啊。

简介

操作系统:window7 x64
编程IDE:Pycharm 2016.1.2
Python版本:3.6.1
编辑时间:2017年4月24日

版权所有:_ O E _ , 转载请注明出处:http://blog.csdn.net/csnd_ayo

  • 引言
  • 简介
  • 效果
  • 获得目录下所有文件名
  • 获得文件总行数
  • 最后的调用

效果

Python3 统计代码 - 练手小程序(一)_第1张图片

  • 获得所有文件名

    这里用到了递归,新手有必要好好看下。

  • 计算每个文件名的行数

获得目录下所有文件名

import os

# 要检查的文件类型
dict_filetype = ["cpp", "c", "h"]

# brief : 递归获得所有文件名
# param : path 起始目录,要检查的根目录
# param : allfile 填空即可
# return: 列表 所有与 dict_filetype 对应的文件名
def get_filename(path, allfile):
    filelist = os.listdir(path)
    for filename in filelist:
        filepath = os.path.join(path, filename)
        # 判断文件夹
        if os.path.isdir(filepath):
            # 文件夹继续递归
            get_filename(filepath, allfile)
        else:
            # 文件,判断文件类型
            for filetype in dict_filetype:
                temp_file_type = filepath.split(".")
                if filetype == temp_file_type[-1:][0]:
                    allfile.append(filepath)
                    break
            # 展示所有非code文件
            else:
                print("the file is not code : %s" %filepath )

    return allfile

获得文件总行数

# brief : 计算行数
# param : listfile 所有要计算的文件名
# return: 文件的总行数
def calc_fileline(listfile):
    file_line_count = 0
    for file in listfile:
        with open(file,'rb') as f:
            temp = len(f.readlines())
            file_line_count += temp
    return file_line_count

最后的调用

# 要检查的目标地址
dest_filepath = r"F:\storage\Core\Window_Custom\screenshot\demo"

print("\n\ncode sum lines: %d\n" % calc(dest_filepath))

你可能感兴趣的:(Python,《Python,必知必会》)