python-docx文件路径问题的解决方案

时间:2021-05-23

path = "test.docx"以工程下venv文件夹为父目录

补充:Python读取指定目录下指定后缀文件并保存为docx

最近有个奇葩要求 要项目中的N行代码 申请专利啥的

然后作为程序员当然不能复制粘贴 用代码解决。。

使用python-docx读写docx文件

环境使用python3.6.0

首先pip安装python-docx

pip install python-docx

然后下面是脚本 修改目录,这里默认取脚本运行目录下的src文件夹

取.cs后缀的所有文件 读取并保存为docx

有一点需要注意,如果文件中有中文,请用vscode或者其他编辑器使用utf-8格式打开,看看有没有乱码 其中每处理一个文件都会有print输出 当看到只有---start没有end的时候就可以找到该文件查看是否有上面说的情况,修改后保存重新执行,一直到全部执行完毕,保存好docx文件

代码

# -- coding: UTF-8 --# Created by luody on 2017/4/7.import osfrom docx import DocumentsaveFile = os.getcwd() + "/code.docx"mypath = os.getcwd() + "/src"doc = Document()doc.add_heading("代码文档", 0)p = doc.add_paragraph('服务端代码,使用语言')p.add_run('C#,SQL').bold = TruelineNum = 0for 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 = Truedoc.save('code.docx')print(lineNum)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章