python-docx之内容读取等

建立文档对象

  • 需要使用docx库中的Document方法创建
  • 指明路径。
from docx import Document
docx1 = Document(r"D:\lianxi_01.docx")
docx1
<docx.document.Document at 0x6b3d778>

读取word中的段落

  • 使用paragraphs属性
from docx import Document
docx1 = Document(r"D:\lianxi_01.docx")
paras = docx1.paragraphs
for i_paras in paras:
    print("*****", i_paras.text)
***** 8月14日,是世界“慰安妇”纪念日。
***** 据统计,在1931年到1945年,侵华日军强征20多万中国妇女作为性奴隶,“慰安妇”成了日军强加给她们的称号。
***** 这是一道道伤疤,刻在了她们心里,这更是人类的耻辱,留在了历史上。

读取word中的标题

# 获取标题2
from docx import Document
docx1 = Document(r"D:\lianxi_02.docx")
paras = docx1.paragraphs
for i_paras in paras:
    if i_paras.style.name == "Heading 2":
        print("*****", i_paras.text)
***** 第一个标题1第一个标题2 
***** 第一个标题1第二个标题2 
***** 第一个标题1第三个标题2 
***** 第二个标题1第一个标题2 
***** 第二个标题1第二个标题2 
# 获取所有标题
for i_paras in paras:
    if re.match("^Heading \d+$",  i_paras.style.name):
        #if i_paras.style.name == re.match("^Heading \d+$",  i_paras.style.name):
        print("*****", i_paras.text)   
***** 第一个标题1
***** 第一个标题1第一个标题2 
***** 第一个标题1第二个标题2 
***** 第一个标题1第三个标题2 
***** 第二个标题1
***** 第二个标题1第一个标题2 
***** 第二个标题1第二个标题2 

读取word中的正文

for i_paras in paras:
    if i_paras.style.name == "Normal":
        print("*****", i_paras.text)
***** 第一个标题1第一个标题2 正文1
***** 第一个标题1第一个标题2 正文2
***** 第一个标题1第二个标题2 正文1
***** 第一个标题1第二个标题2 正文2
***** 第一个标题1第二个标题2 正文3
***** 第一个标题1第三个标题2 正文1
***** 第一个标题1第三个标题2 正文2
***** 第一个标题1第三个标题2 正文3
***** 第二个标题1第一个标题2 正文1
***** 第二个标题1第一个标题2 正文1
***** 第二个标题1第二个标题2 正文1

读出所有块

  • 不同的块一般有不同的格式
from docx import Document
docx1 = Document(r"D:\lianxi_03.docx")
for i_paras in docx1.paragraphs:
    runs = i_paras.runs
    for i_runs in runs:
        print("----", i_runs.text)
---- 今年
---- ,南京利济巷慰安所旧址陈列馆工作人员,
---- 在湖南新确认3位日军“慰安妇”制度受害幸存者。

增加标题或段落

add增加

  • add_heading新增标题
  • 使用add_paragraphs新增正文段落
from docx import Document
docx1 = Document(r"D:\lianxi_02.docx")
docx1.add_heading("我是新增的一级标题", level=1)
docx1.add_heading("我是新增的二级标题", level=2)
docx1.add_paragraph("我是新增的正文")
docx1.save("D:\edit_02.docx")

插入段落

  • 使用add_paragraph_before,无after方法
from docx import Document
docx1 = Document(r"D:\lianxi_03.docx")
para = docx1.add_paragraph("我之后添加的文字会被设置格式")
para.add_run("加粗").bold = True
para.add_run("普通")
para.add_run("加粗").italic = True
docx1.save(r"D:\edit_03.docx")

设置格式,自动分块

from docx import Document
docx1 = Document(r"D:\lianxi_03.docx")
para = docx1.paragraphs[0]
para.insert_paragraph_before("这是新增加的段落1")
docx1.save(r"D:\edit_04.docx")

插入分页符

  • 使用add_page_break()方法
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值