软件著作权python代码少_软件著作权源代码咋么整理?复制粘贴?out了,直接使⽤pyt。。。
⼀个⼩需求:
在申请软件著作权的时候,需要提交⼀页50⾏,总共60页的源代码。但是设计的项⽬保存在多级的⽬录下,不想⼀个⼀个复制,遂通过python ,os模块获得全部⽬录的⽂件,re正则化过滤⽆效源代码,然后基于docx模块写⼊到word中。涉及的模块有 os, docx, re
同学们要⾃⾏下载上述的模块,使⽤ pip install XXX 就可以的。。
python⼤法好呀
那我们就分为2 个⼤的步骤开始了解吧:
1. 先将⼀个⽂件夹下的所有⽂件夹的 .java ⽂件路径保存到⼀个列表中
2. 依次读取列表的路径, 将 .java ⽂件内容保存到word 中
ok, 那是时候开始
写写(或者 复制粘贴) ⼀些可爱的代码了
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__title__ = ''
__author__ = 'mike_jun'
__mtime__ = '2019-7-1'
#⽬的: 1. 先将⼀个⽂件夹下的所有⽂件夹的 .java ⽂件路径保存到⼀个列表中
2. 依次读取列表的路径, 将 .java ⽂件内容保存到word 中
"""
import os
from docx import Document
l.ns import qn
from docx.shared import Pt
import re
from docx.shared import Length
fileList = [] # 使⽤全局列表保存⽂件路径
def getAllFile(path, fileList): # 使⽤递归⽅法
dirList = [] # 保存⽂件夹
files = os.listdir(path) # 返回⼀个列表,其中包含⽂件 和 ⽂件夹
for f in files:
if (os.path.isdir(path + '/' + f)):
dirList.append(path + '/' + f) # 将⽂件夹 名字 进⾏保存
if (os.path.isfile(path + '/' + f)):
fileList.append(path + '/' + f) # 将⽂件名 保存
for dir in dirList: #如果⽂件夹为空时,递归⾃动退出
getAllFile(dir, fileList) # 递归保存到将.java ⽂件保存到 fileList 中
getAllFile( r'E:\src\main\java\com\gdut', fileList) // 指定⾃⼰的代码所在的⽂件
print('⽂件数量为: ',len(fileList))
def getJavaFile(fileList):
for file in fileList:
if dswith('.java'): # 删除不是 .java ⽂件的格式
print('⽂件数量为: ',len(fileList))
getJavaFile(fileList)
print(os.path.isfile(fileList[0])) # 判断第⼀个值是否是⽂件
def saveDocFile():
# SINGLE => 单倍⾏距(默认)
# ONE_POINT_FIVE => 1.5倍⾏距
# DOUBLE2 => 倍⾏距
# AT_LEAST => 最⼩值
# EXACTLY => 固定值
# MULTIPLE => 多倍⾏距
doc = Document()
um.text import WD_LINE_SPACING
p = doc.add_paragraph('') #增加⼀页
doc.styles['Normal'].font.name = 'Times New Roman' # 正⽂是normal, 设置正⽂的字体格式doc.styles['Normal'].font.size = Pt(8) # 设置字体的⼤⼩为 5 号字体
p.line_spacing_rule = WD_LINE_SPACING.EXACTLY # 固定值
paragraph_format = doc.styles['Normal'].paragraph_format
paragraph_format.line_spacing = Pt(12.9) # 固定值12,9磅, 保证每页有50⾏代码
save_file = r'E:\text.doc'
codeNum = 0
for i, f in enumerate(fileList):
print('starting deal %d'%i)
with open(f, encoding='UTF-8') as file: # 转换编码以实现正确输出中⽂格式
for line adlines():
if line == '\n': # 删除空⾏
continue
if re.match(r'^\s+$', line): # 使⽤正则表达式删除全是空格的空⾏
continue
if line.__contains__(r'/*') or \
line.__contains__(r' *'): # 删除注释
continue
if line.__contains__(r'//'): # 删除包含 // 的注释, 严格意义上应该使⽤正则表达式进⾏删除continue
p.add_run(line)
codeNum += 1 # 记录是已经写⼊的数据
if codeNum == 3050: # 保证打印出不⼤⼤超过与 60 页
python新手代码图案如何保存doc.save(save_file)
return
doc.save(save_file) # 不⾜60 页进⾏保存
print('all done')
saveDocFile()
print('all done')
if dswith('.java'): # 删除不是 .java ⽂件的格式
如果是python代码的话,就可以改后缀 为 : .py 哦
其他语⾔也是⼀样
done
欢迎关注⼯纵号:不⽌于编程,更多⼲货。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论