Python统计磁盘代码文件行数

听说简历要求10万行代码经验。于是写了个Python脚本用来计算电脑磁盘内代码的行数。

主要功能:

①统计指定代码的总行数
②统计每个代码单独的行数
③自定义设置存储路径

设计思路:

将文件转化为txt文档,对txt文档统计行数。

非GUI代码:

import shutil
import os

path = "C:\\Users\\dell\\Desktop\\archives\\"
file_path1 = "E:\\Temporary\\python\\"
file_path2 = "E:\\Files\\University study\\SE\\"
file_archive = []
file_archive.append(file_path1)
file_archive.append(file_path2)
file_label = [".py", ".h", ".c", ".cpp", ".java", ".m"]
counter = 1
total_line = 0


def calculate(filename):
    global counter
    global total_line
    newName = path + filename[filename.rfind('\\')+1:filename.rfind('.')] + str(counter) + ".txt"  # 更改文件后缀名为txt
    shutil.copyfile(filename, newName)  # 将文件拷贝到工作区
    myfile = open(newName, 'rb')  # 以rb方式打开文件
    lines = len(myfile.readlines())  # 计算单个文件的行数
    total_line += lines  # 加入到总行数
    counter += 1  # 计数器加1


def visitDir(path):
    global file_label
    if not os.path.isdir(path):
        print('Error: "', path, '" is not a directory or does not exist.')
        return
    else:
        try:
            for lists in os.listdir(path):
                sub_path = os.path.join(path, lists)
                flag = 0
                for i in range(len(file_label)):
                    if file_label[i] == sub_path[sub_path.rfind("."):]:
                        flag = 1
                        break
                if flag == 1:
                    calculate(sub_path)
                if os.path.isdir(sub_path):
                    visitDir(sub_path)
        except:
            pass


if __name__ == '__main__':
    x = 0
    for i in range(len(file_archive)):
        visitDir(file_archive[i])
    # visitDir(file_path2)
    print("文件数:", counter, "\n总行数:", total_line)

效果图:

这里写图片描述

GUI程序下载地址:https://download.csdn.net/download/xyisv/10317619

更多Python内容访问omegaxyz.com
网站所有代码采用Apache 2.0授权
网站文章采用知识共享许可协议BY-NC-SA4.0授权
© 2018 • OmegaXYZ-版权所有 转载请注明出处

猜你喜欢

转载自blog.csdn.net/xyisv/article/details/79795571