Python练习

来源:互联网 发布:js中array长度 编辑:程序博客网 时间:2024/06/05 23:51

练习题:有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释,但是要分别列出来。

#!/usr/bin/python# -*- coding: UTF-8 -*-# 文件名: codeline.pyimport osimport sysdef filename(dir):    for roots, dirs, files in os.walk(dir):         if not roots.endswith('/'):            roots = roots + '/'        for file in files:            filename = roots + file            yield filenamedef codeline(file):    file_r = open(file, 'r')    empty_line, comment_line, code_line = 0, 0, 0    #由于代码是hive脚本,注释符号为'--'    for f_line in file_r:        if f_line.strip(): #目前只去掉了空格符            if f_line.strip().startswith('--'):                comment_line = comment_line + 1            else:                code_line = code_line + 1        else:            empty_line = empty_line + 1    return (empty_line, comment_line, code_line)if len(sys.argv) == 1:    dir = '/home/hexincheng115/sql'else:    dir = sys.argv[1]if not os.path.isdir(dir):    print "该目录%s不存在,请检查!" % direlse:    total_line_empty, total_line_comment, total_line_code = 0, 0, 0    for each_file in filename(dir):        total_line_empty = total_line_empty + codeline(each_file)[0]        total_line_comment = total_line_comment + codeline(each_file)[1]        total_line_code = total_line_code + codeline(each_file)[2]    print "该目录%s空行总行数为%d." % (dir, total_line_empty)    print "该目录%s注释总行数为%d." % (dir, total_line_comment)    print "该目录%s代码总行数为%d." % (dir, total_line_code)
0 0