计算一个Python项目的有效python代码行数(去除注释及空行)

# !/usr/bin/env python
# -*- coding: utf-8 -*-
import re
import os
lines = 0


def count_lines(path):
    global lines
    if os.path.isdir(path):
        for i in os.listdir(path):
            new_path = os.path.join(path, i)
            if os.path.isfile(new_path):
                if re.findall(r'.+\.py', new_path):
                    try:
                        with open(new_path, encoding='utf8') as f2:
                            for l in f2:
                                if not (l.strip().startswith('#') or l != '\n'):
                                    lines += 1
                    except Exception as e:
                        pass
            else:
                count_lines(new_path)
    else:
        if re.findall(r'.+\.py', path):
            try:
                with open(path, encoding='utf8') as f1:
                    for l in f1:
                        if not (l.strip().startswith('#') or l != '\n'):
                            lines += 1
            except Exception as e:
                pass
    return lines


if __name__ == '__main__':
    print(count_lines(os.getcwd()))
posted @ 2019-04-25 15:08  临冬城城主  阅读(220)  评论(0)    收藏  举报