鱼C论坛

 找回密码
 立即注册
查看: 2130|回复: 3

[学习笔记] 适用于py3.8的统计代码行数实现

[复制链接]
发表于 2020-5-1 13:41:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 星河主炮 于 2020-5-1 19:28 编辑
  1. import easygui as g
  2. import os
  3. import sys

  4. #找文件模块

  5. def serch_file():

  6.     file = 0

  7.     source_code = []

  8.     source_py = []

  9.     #source_c = []   几个为其他语言预留的列表位

  10.     #source_cpp = []

  11.     #source_pas = []

  12.     #source_asm = []

  13.     path = g.diropenbox(msg = '打开放置代码的文件夹',title = '代码行数统计')

  14.     file_name = os.listdir(path)

  15.     for i in file_name:

  16.         if i.endswith('.py') == True:  #笔者只学python,偷个懒,若要显示其他语言就多写几个,或者用嵌套函数

  17.             source_code.append(i)   #构造文件名列表

  18.             source_py.append(i)     #单纯对于.py文件来说此步纯属多余,对于显示多种有必要使用

  19.             file = file + 1

  20.     return (file,source_code,source_py)#此处避免区分全局变量与局部变量         return只能返回一个值,但是可以返回一个列表或元组装作只返回了一个值

  21. #读文件模块

  22. def calc_code(x):#calc是calculate的缩写

  23.     lines = 0

  24.     for i in x:#条件用while,遍历用for

  25.         f = open(i,encoding = 'UTF-8')  #此句最好加上,不过没有也不一定就不行

  26.         for each_line in f: #统计行数

  27.             lines += 1

  28.     return lines

  29. #显示文件模块

  30. def show_result(a,b,e):

  31.     c = (b/100000)*100

  32.     d = 100000 - b

  33.     e1 = len(e)

  34.     g.textbox(msg = ('共编写了%d个文件,源代码共%d行,距离100,000行的目标已完成%.2f %%\n目前尚有%d行代码要编写。'%(a,b,c,d)),title = '代码行数统计',text = ('共有.py文件%d个。'%(e1)))

  35.     g.msgbox(msg='感谢使用',ok_button = '做的好!')

  36.     return

  37. #主程序
  38.            
  39. list1 = serch_file()

  40. a = list1[0]

  41. x = list1[1]

  42. e = list1[2]

  43. b = calc_code(x)

  44. show_result(a,b,e)

  45. sys.exit(0)


  46. #在找文件模块中应该使用绝对路径,否则该python程序必须与检测文件夹放在同一目录下,不然会报错。不过这里再偷个懒,因为这个文件也算代码,不放在别的地方,bug不会出现
复制代码




代码里问题不少,也不算特别优雅,不过保证能跑(需要easygui模块支持),也保证结果正确
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-1 13:43:04 | 显示全部楼层
没发成代码格式抱歉了……不太明白怎么发成代码格式
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-1 13:49:35 | 显示全部楼层
星河主炮 发表于 2020-5-1 13:43
没发成代码格式抱歉了……不太明白怎么发成代码格式

如何发代码段
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-1 14:04:22 | 显示全部楼层

感激不尽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-30 09:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表