admin 管理员组文章数量: 1087818
Python代码删除word文档中指定页码的内容
直接删除指定页码的方法暂时还为解决,因为用docx库获取底部页码有点难度。
1.思路
但是,可以换个思路,
在开始页码的一行插入一个尽可能长的开始字符串(长一点避免识别错误,代码中的开始关键字),
在结尾页码的最后一行插入一个尽可能长的结束字符串(长一点避免识别错误,代码中的结束关键字),
然后删除两个字符串之间的内容,就相当于删除了指定页码内的内容。
2.适用情况
2.1.文档内容较多、文档个数较少时可以采用这种方式来处理:在文档中手动插入开始与结束字符串,然后运行代码。
2.2.文档个数较多时,可以考虑其他方法。
3.代码
下面代码仅供参考。
# 删除docx中指定关键字之间的内容
from docx import Document
import re# 删除段落函数
def delete_paragraph(paragraph):p = paragraph._elementp.getparent().remove(p)p._p = p._element = None# 寻找字符并删除:若已知起始段,可直接改range的其起始段
def delete_content_between(doc, start_keyword, end_keyword):# 段落序号:i# 删除段落个数k = 0# 遍历文档的所有段落for i in range(0,len(doc.paragraphs)):# 如果已经完成删除工作,则退出寻找if k>0:break# 显示当前遍历的段落序号print('当前遍历段落序号:',i)paragraph = doc.paragraphs[i]# 获取段落文本内容text = paragraph.text# 使用正则表达式匹配起始关键字start_match = re.search(re.escape(start_keyword), text)if start_match:# 输出起始段落的信息print('起始关键字段落序号:',i)# 删除跨越多个段落的内容while True:# 统计并输出删除的段落个数k+=1print('已经删除段落个数:',k)# 获取起始关键字的段落next_paragraph = doc.paragraphs[i]next_text = next_paragraph.text# 寻找结束关键字的段落:找到则退出if re.search(re.escape(end_keyword), next_text):# 删除含有结束关键字的段落delete_paragraph(doc.paragraphs[i])break#没有结束则删除段落:下一段段落序号会顶上来,所以段落序号i不用变else:delete_paragraph(doc.paragraphs[i])# 保存修改后的文档doc.save('output.docx')# 打开 Word 文档
doc = Document('11.docx')# 指定要删除的内容之间的关键字
# 开始关键字
start_keyword = 'start'
# 结束关键字
end_keyword = 'end123456789'# 删除指定关键字之间的内容
delete_content_between(doc, start_keyword, end_keyword)
本文标签: Python代码删除word文档中指定页码的内容
版权声明:本文标题:Python代码删除word文档中指定页码的内容 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1700371376a417955.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论