• python 脚本(获取指定文件夹、指定文件格式、的代码行数、注释行数)


    1.代码的运行结果:

      获取 指定文件夹下、指定文件格式 文件的: 总代码行数、总注释行数(需指定注释格式)、总空行数;

     1 #coding: utf-8
     2 import os, re
     3 
     4 # 代码所在目录
     5 FILE_PATH = './'
     6 
     7 def analyze_code(codefilesource):
     8     '''
     9         打开一个py文件,统计其中的代码行数,包括空行和注释
    10         返回含该文件总行数,注释行数,空行数的列表
    11     '''
    12     total_line = 0
    13     comment_line = 0
    14     blank_line = 0
    15 
    16     with open(codefilesource) as f:
    17         lines = f.readlines()#  ['import aa', 'if main', '']
    18         total_line = len(lines)
    19         line_index = 0
    20 
    21         # 遍历每一行
    22         while line_index < total_line:
    23             line = lines[line_index]
    24             # 检查是否为注释
    25             if line.startswith("#"):
    26                 comment_line += 1
    27             # 检查是否为空行
    28             elif line == "
    ":
    29                 blank_line += 1
    30 
    31             line_index += 1
    32 
    33     print "在%s中:" % codefilesource
    34     print "代码行数:", total_line
    35     print "注释行数:", comment_line, "占%0.2f%%" % (comment_line*100.0/total_line)
    36     print "空行数:  ", blank_line, "占%0.2f%%" % (blank_line*100.0/total_line)
    37 
    38     return [total_line, comment_line, blank_line]
    39 
    40 
    41 def run(FILE_PATH):
    42     # 切换到code所在目录
    43     os.chdir(FILE_PATH)
    44     # 遍历该目录下的py文件
    45     total_lines = 0
    46     total_comment_lines = 0
    47     total_blank_lines = 0
    48 
    49     for i in os.listdir(os.getcwd()):
    50         if os.path.splitext(i)[1] == '.py':
    51             line = analyze_code(i)
    52             total_lines, total_comment_lines, total_blank_lines = total_lines + line[0], total_comment_lines + line[1], total_blank_lines + line[2]
    53 
    54     print "总代码行数:", total_lines
    55     print "总注释行数:", total_comment_lines, "占%0.2f%%" % (total_comment_lines*100.0/total_lines)
    56     print "总空行数:  ", total_blank_lines, "占%0.2f%%" % (total_blank_lines*100.0/total_lines)
    57 
    58 
    59 if __name__ == '__main__':
    60     run(FILE_PATH)
  • 相关阅读:
    趣题:寻找出现了奇数次的数
    zstu2016校赛圣杯战争
    HDU 5183 Negative and Positive (NP) ——(后缀和+手写hash表)
    HDU 5673 Robot ——(卡特兰数)
    HDU 3775 Chain Code ——(Pick定理)
    2016 ICPC北京站现场赛总结(再度流水账)
    2014苏州大学新生赛第二场(12.10)题目解析
    【Jump Game II 】cpp
    【Jump Game】cpp
    【 Sqrt(x) 】cpp
  • 原文地址:https://www.cnblogs.com/yyx1-1/p/6081323.html
Copyright © 2020-2023  润新知