当前位置: 首页 > news >正文

python读取docx文件,就是如此简单

中文编码问题总是让人头疼(尤其是mac本),想要用Python读取word中的内容。用open()经常报错,通过百度搜索+问身边小伙伴发现了Python有专门读取.docx的模块python_docx。本篇文章主要来解决一个读取docx文件的基本操作。希望感兴趣的小伙伴可以坚持看下去同时欢迎提出宝贵的意见让我们一起进步!

01:问题抛出与引入

import docx
path = "C:\\Users\\qin\\Desktop\\1.docx"
file_object=open(path,'rb')
print(file_object.read())
#输出结果如下所示:
b'PK\\x03\\x04\\x14\\x00\\x06\\x00\\x08\\x00\\x00\\x00!\\x00J\\xbc\\x02qm\\x01\\x00\\x00
(\\x06\\x00\\x00\\x13\\x00\\x08\\x02[Content_Types].xml \\xa2\\x04\\x02(\\xa0\.....

一个很简单的docx文件,打印出来的结果却不是我们想要的。对此引入一个十分好用的docx模块,下面就详细介绍该模块的一些基本操作。

02:安装docx模块

pip install python_docx

03:新建文档对象

import docx
from docx import Document
# 新建文档,并将其保存名为“test.docx”的文件
document = Document()
document.save('test.docx')

04:添加文档内容

import docx
from docx import Document
from docx.shared import Inches
document = Document('C:\\Users\\qin\\Desktop\\1.docx')
document.add_heading('I like python', 0)#插入标题:0表示样式为title标题
document.add_heading('一级标题', level=1)#插入1级标题
p = document.add_paragraph('Python是一种计算机程序设计语言 ')#插入段落
document.add_picture('C:\\Users\\qin\\Desktop\\1.png', width=Inches(1.25)) #添加图片并指定宽度
table = document.add_table(rows=1, cols=3)  #添加一个表格,每行三列
hdr_cells = table.rows[0].cells  #获取第一行的单元格列表对象
hdr_cells[0].text = 'ID'    #为每一个单元格赋值
hdr_cells[1].text = 'Name'
hdr_cells[2].text = 'Age'
new_cells = table.add_row().cells #为表格添加一行
new_cells[0].text = '1'
new_cells[1].text = 'Tom'
new_cells[2].text = '15'
document.add_page_break()   #添加分页符

05:保存文档内容

名字相同则将修改的文件内容保存;名字不同则将修改的文件内容另存为

import docx
from docx import Document
document.save('C:\\Users\\qin\\Desktop\\1.docx')#保存
document.save('C:\\Users\\qin\\Desktop\\2.docx')#另存为

06:读取文本内容

import docx
from docx import Document
path = "C:\\Users\\qin\\Desktop\\1.docx"
document = Document(path)
for paragraph in document.paragraphs:print(paragraph.text)

07:读取表格内容

import docx
from docx import Document
path = "C:\\Users\\qin\\Desktop\\1.docx"
document = Document(path)  # 读入文件
tables = document.tables   # 获取文件中的表格集
table = tables[0]  # 获取文件中的第一个表格
for i in range(0, len(table.rows)):  # 从表格第一行开始循环读取表格数据result = f'{(table.cell(i, 0).text):<5}' + "" + f'{(table.cell(i, 1).text):<5}' + "" + f'{(table.cell(i, 2).text):<5}'# cell(i,0)表示第(i+1)行第1列数据,以此类推print(result)

想要知道docx模块更多资料参考:https://python-docx.readthedocs.io/en/latest/


http://www.taodudu.cc/news/show-5435433.html

相关文章:

  • 鸿蒙内核源码分析(原子操作篇) | 谁在为原子操作保驾护航
  • 2024 AI中转计费平台系统源码
  • python内置类bytearray()详解
  • sparksql 如何计算上一个自然周和自然月
  • 鸿蒙HarmonyOS开发:List列表组件的使用详解及案例演示(二)
  • Spring STOMP-发送消息
  • Caused by: java.lang.ClassNotFoundException: freemarker.template.Configuration
  • A component required a bean of type ‘XXX‘ that could not be found 解决办法
  • spring aop 自定义注解配合swagger注解保存操作日志到mysql数据库含(源码)
  • 小而美 | Mac上鲜为人知,但极大提升效率的小工具
  • 防火墙体系结构的组合形式
  • E - B-莲子的机械动力学
  • 需要克服的缺点
  • 高版本springboot整合swagger
  • PHP. 03 .ajax传输XML、 ajax传输json、封装
  • ajax请求php返回xml数据格式,ajax传输的数据格式(XML,json)怎么获取解析
  • JavaScript基础之Ajax总结大全
  • Ajax入门和发送http请求
  • 04-Ajax传输json和XML
  • python网络爬虫——爬虫第三方库的使用(二)
  • ajax使用频率,11-Ajax详解
  • 使用Ajax发送http请求(getpost请求)
  • 人加智能FPGA应用实践-AI快速进化
  • Mac显示证书不受信任或者无效的解决办法
  • Mac | 解决证书不受信任问题
  • Java 解析CA证书 对数据进行签名和验签
  • ca证书 csr_什么是csr证书
  • 招行网银证书不见了
  • 网银的业务学习之道:数字证书的基础知识
  • 网上银行安全证书工作原理
  • 数字证书基础
  • 网上银行数字证书原理
  • 海南农信服务器证书异常,农商银行网银显示服务器没有收到您的证书怎么办
  • 顺德农商银行服务器没有收到您的证书,农商行网上银行u盘插入,提示没有证书怎么回......
  • 探讨:网银数字证书加密解密原理
  • 解决IMX6从 uboot调试usb start 命令无法识别U盘的问题