Python脚本自动提取指定后缀代码文件并生成Word文档
本文介绍如何使用Python的python-docx库,自动遍历指定目录下的特定后缀代码文件(如.cs),并将读取到的代码内容整理保存为Word文档。脚本支持处理中文编码,通过打印日志监控文件处理状态,确保生成包含标题、代码块及总行数的完整文档,适用于快速整理项目代码以申请专利或归档。
近期遇到一个特殊需求,需要从项目中提取N行代码用于申请专利。
作为程序员,手动复制粘贴效率低下,因此决定编写代码来自动化解决这一问题。
本方案采用python-docx库来实现对docx文件的读写操作。
开发环境基于Python 3.6.0版本。
首先需要通过pip命令安装python-docx库。
pip install python-docx
接下来是核心脚本,需修改目录路径,此处默认读取脚本运行目录下的src文件夹,提取所有.cs后缀的文件,读取内容并保存为docx格式。
需要注意一点:如果文件中包含中文,请使用VS Code或其他编辑器以UTF-8格式打开检查是否存在乱码。处理每个文件时脚本会输出打印信息,当看到仅有“start”而无“end”时,即可定位到该文件检查上述编码问题,修改后保存并重新执行,直至全部处理完毕并保存好docx文件。
相关代码实现如下。
# -- coding: UTF-8 --
# Created by luody on 2017/4/7.
import os
from docx import Document
saveFile = os.getcwd() + "/code.docx"
mypath = os.getcwd() + "/src"
doc = Document()
doc.add_heading("代码文档", 0)
p = doc.add_paragraph('服务端代码,使用语言')
p.add_run('C#,SQL').bold = True
lineNum = 0
for root, dirs, files in os.walk(mypath):
for filespath in files:
if (filespath.endswith('.cs')):
doc.add_heading(filespath, level=1)
codePage = ''
print(filespath+' ---- start')
for line in open(os.path.join(root, filespath), encoding="utf-8"):
codePage += line
lineNum += 1
print(filespath+' ---- end')
doc.add_paragraph(codePage, style='IntenseQuote')
doc.add_page_break()
p = doc.add_paragraph(u'总行数:')
p.add_run(str(lineNum)).bold = True
doc.save('code.docx')
print(lineNum)
以上介绍了利用Python读取指定目录下指定后缀文件并保存为docx的方法,希望能对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复。在此非常感谢大家对本站网站的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













