|
发表于 2020-5-1 13:46:57
|
显示全部楼层
- 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[0]
- x = list1[1]
- e = list1[2]
- b = calc_code(x)
- show_result(a,b,e)
- sys.exit(0)
- #在找文件模块中推荐使用绝对路径,否则该python程序必须与检测文件夹放在同一目录下,不然会报错。这里再偷个懒,因为这个文件也算代码,不会放在别的地方,bug不会出现
复制代码 |
|