Python自动化办公 - 对Word的操作(Python-docx的基本使用)

1 安装模块

Windows用户打开命令行输入:pip install python-docx

Mac用户打开终端/Terminal输入:pip3 install python-docx

导入模块:import docx

如果无法安装,可以转换为国内清华镜像源,Windows系统操作如下:

在cmd模式下输入

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx

2 读取Word文档内容

2.1 文档结构

在这里插入图片描述

注意:一个run对象是相同样式文本的延续,如颜色、字体、粗细、斜体不同,文字加粗和后面没有加粗操作的,属于不同的文字块。

2.2 获取段落和文字块

1)获取段落paragraph

① python-docx提取文字

doc.paragraphs -> 得到一个列表,包含每个段落实例

len(doc.paragraphs)-> 得到段落的个数

paragraph.text -> 得到该段落的文字内容

import docx
from docx import Document
# 绝对路径写法,为方便阅读,以下都采用相对路径。
# doc = Document(r"C:\Users\Administrator\Desktop\这是一个文档.docx")
doc = Document("这是一个文档.docx")
print("段落数:"+str(len(doc.paragraphs)))
print(len(doc.paragraphs))

#输出第一段的内容,索引从0开始
para = doc.paragraphs[0]
print("第一段的内容是",para.text,sep=':')
print("----------------------------------------------------------------")

#输出每一段的内容
for para in doc.paragraphs:
 	print(para.text)
print("----------------------------------------------------------------")

#输出段落编号及段落内容
for i in range(len(doc.paragraphs)):
 print("第"+str(i)+"段的内容是:"+doc.paragraphs[i].text)
      

2)获取文字块Run

paragraph.runs -> 得到一个列表,包含每个文字块

run.text -> 得到该文字块的文字内容

import docx
from docx import Document

doc = Document("这是一个文档.docx")

#输出第一段第一个文字块的内容,索引从0开始
para1 = doc.paragraphs[0]
runs = para1.runs[0]
print("第一段第一个文字块的内容是",runs.text,sep=':')
print("----------------------------------------------------------------")
for i in range(len(doc.paragraphs)):
    paragraph = doc.paragraphs[i]
    runs = paragraph.runs
    for run in paragraph.runs:
        print("第"+str(i+1)+"个文字块的内容是:"+run.text)

2.3 获取整个文本

读取完整的Word文本内容。这里,自定义一个函数将全部的paragraph段落内容存起来,每个paragraph段落之间用换行符\n隔开即可。

import docx

def getText(fileName):
    doc = docx.Document(fileName)
    TextList = []
    for paragraph in doc.paragraphs:
        TextList.append(paragraph.text)
    
    return '\n'.join(TextList)
    
fileName = r'example3.docx'
print(getText(fileName))

3 向文档中写入内容

3.1 添加文字

1)添加标题

doc.add_heading(“标题名称”,level=标题等级),level=可以省略

整数 0 表示标题是 Title 样式,这用于文档的顶部。整数 1 到 45是不同的标题层次,是主要的标题, 45是最低层的子标题

import docx
doc=docx.Document()

doc.add_heading('标题0',0)
doc.add_heading('标题1',1)
doc.add_heading
  • 21
    点赞
  • 153
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值