【Python]申请软著之JavaWeb项目自动生成源代码文档
软著统计行数代码见我上一篇。Java Web项目一弄就是4万行,这还只是java文件,没有包含html,js,xml那些,可见废话有多少。改改顶部的几个参数,直接运行,会生成个output.txt,然后把内容粘贴到word里面,设置下行距,固定值12磅,刚好满足每页至少50行的要求。然后4000行代码肯定会超过60页,然后从中间删除几个类即可。成品 output.txt 格式类似如下,就是多了个带
·
软著统计行数代码见我上一篇。
Java Web项目一弄就是4万行,这还只是java文件,没有包含html,js,xml那些,可见废话有多少。
改改顶部的几个参数,直接运行,会生成个output.txt,然后把内容粘贴到word里面,设置下行距,固定值12磅,刚好满足每页至少50行的要求。
然后4000行代码肯定会超过60页,然后从中间删除几个类即可。
成品 output.txt 格式类似如下,就是多了个带包路径的java文件名,和最后的空行。
com.ruoyi.web.controller.common.CommonController.java
package com.ruoyi.web.controller.common;
import javax.servlet.http.HttpServletRequest;
@Controller
public class CommonController
{
....
}
com.xxx.yyy.zzz.Hello.java
package com.xxx.yyy.zzz;
import xxxxx;
.....
Python脚本如下:
用到了with语法和切片,讲到这,推荐大家看下python的中阶书《流畅的Python》,挺好的书,但不适合初学者,适合Java转Python的程序员。
# 适用于python 3.7
import os
# C:\Users\M\Desktop\1\mypro\ruoyi-admin\src\main\java\com\ruoyi\web\controller\demo\controller\DemoDialogController.java
projectDir='C:\\Users\\M\\Desktop\\1\\whjcwzh' #项目文件夹
baseDir='C:\\Users\\M\\Desktop\\1\\whjcwzh\\ruoyi-admin\\src\\main\\java\\' #需要扣掉,只打印包路径
typeList = ['java'] #统计的源代码文件格式
fileCode = 'utf-8' #源代码文件的编码格式
output = 'C:\\Users\\M\\Desktop\\1\\mypro\\output.txt'
printLines =4000 #每页不少于50行,前、后各连续30页,共60页。4000行中间后面删一点就够了。
def getFileList(projectDir):
fileList = []
for parent,dirNames,fileNames in os.walk(projectDir):
for filename in fileNames:
ext = filename.split('.')[-1]
if ext in typeList:
fileList.append(os.path.join(parent,filename))
return fileList
def writeTxt(infileName, fileCode, output):
count = 0
with open(output,'at',encoding="utf-8") as fout:
#写文件名,要包括包名 com.mypro.web.controller.demo.Hello.java
filepkg = infileName[len(baseDir):].replace('\\','.') + "\n"
fout.write(filepkg)
#写代码正文
for line in open(infileName,'r',encoding=fileCode).readlines():
if line != '' and line != '\n': #过滤空行
count += 1
fout.write(line)
#文件打印结束,空出一行
fout.write("\n")
print (infileName + '--write line num--' , count)
return count
if __name__ == '__main__' :
fileList = getFileList(projectDir)
totalCnt = 0
for sourcefile in fileList:
totalCnt = totalCnt + writeTxt(sourcefile, fileCode, output)
if(totalCnt > 4000):
print("最后一个文件是:", sourcefile)
break
print ('总行数',totalCnt)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献4条内容
所有评论(0)