适用于py3.8的统计代码行数实现
本帖最后由 星河主炮 于 2020-5-1 19:28 编辑import easygui as g
import os
import sys
#找文件模块
def serch_file():
file = 0
source_code = []
source_py = []
#source_c = [] 几个为其他语言预留的列表位
#source_cpp = []
#source_pas = []
#source_asm = []
path = g.diropenbox(msg = '打开放置代码的文件夹',title = '代码行数统计')
file_name = os.listdir(path)
for i in file_name:
if i.endswith('.py') == True:#笔者只学python,偷个懒,若要显示其他语言就多写几个,或者用嵌套函数
source_code.append(i) #构造文件名列表
source_py.append(i) #单纯对于.py文件来说此步纯属多余,对于显示多种有必要使用
file = file + 1
return (file,source_code,source_py)#此处避免区分全局变量与局部变量 return只能返回一个值,但是可以返回一个列表或元组装作只返回了一个值
#读文件模块
def calc_code(x):#calc是calculate的缩写
lines = 0
for i in x:#条件用while,遍历用for
f = open(i,encoding = 'UTF-8')#此句最好加上,不过没有也不一定就不行
for each_line in f: #统计行数
lines += 1
return lines
#显示文件模块
def show_result(a,b,e):
c = (b/100000)*100
d = 100000 - b
e1 = len(e)
g.textbox(msg = ('共编写了%d个文件,源代码共%d行,距离100,000行的目标已完成%.2f %%\n目前尚有%d行代码要编写。'%(a,b,c,d)),title = '代码行数统计',text = ('共有.py文件%d个。'%(e1)))
g.msgbox(msg='感谢使用',ok_button = '做的好!')
return
#主程序
list1 = serch_file()
a = list1
x = list1
e = list1
b = calc_code(x)
show_result(a,b,e)
sys.exit(0)
#在找文件模块中应该使用绝对路径,否则该python程序必须与检测文件夹放在同一目录下,不然会报错。不过这里再偷个懒,因为这个文件也算代码,不放在别的地方,bug不会出现
代码里问题不少,也不算特别优雅,不过保证能跑(需要easygui模块支持),也保证结果正确 没发成代码格式抱歉了……不太明白怎么发成代码格式 星河主炮 发表于 2020-5-1 13:43
没发成代码格式抱歉了……不太明白怎么发成代码格式
如何发代码段 Hello. 发表于 2020-5-1 13:49
如何发代码段
感激不尽
页:
[1]