Python读写docx文件的方法


Posted in Python onMay 08, 2018

Python读写word文档有现成的库可以处理。我这里采用 python-docx。可以用pip install python-docx安装一下。

这里说一句,ppt和excel也有类似的库哦,而且是直接读取文件里面的xml数据。所以doc格式得另找其他库处理,doc格式不是基于xml的。

帮助文档:http://python-docx.readthedocs.org/en/latest/

1、新建或打开文件。这个比较简单用docx的Document类,若指定路径则是打开文档;若没有指定路径则是新建文档

#coding:utf-8
import docx
 
#新建文档
doc_new = docx.Document()
 
#读取文档
doc = docx.Document(ur'C:\1.docx')

2、保存文件。有打开,就有保存。用Document类的save方法,其中参数是保存的文件路径,或者要保存的文件流。一般指定路径即可。

doc.save(path_or_stream)

3、对象集合。python-docx包含了word文档的相关对象集合。

doc.paragraphs #段落集合
doc.tables #表格集合
doc.sections #节 集合
doc.styles #样式集合
doc.inline_shapes #内置图形 等等...

4、插入段落。段落是word最基本的对象之一。

doc.add_paragraph(u'第一段',style=None) #插入一个段落,文本为“第一段”
#默认是不应用样式,这里也可以不写style参数,或者指定一个段落样式
doc.add_paragraph(u'第二段',style='Heading 2')
 
#这些样式都是word默认带有的样式,可以直接罗列出来有哪些段落样式
print [s.name for s in doc.styles if s.type==1]

5、新增样式。这个帮助文档里面说得不仔细,而且还是英文的。我手头上的项目用到这个,就自己琢磨出怎么使用,如下。

#coding:utf-8
from docx import Document
from docx.shared import RGBColor #这个是docx的颜色类
 
#新建文档
doc = Document()
 
#新增样式(第一个参数是样式名称,第二个参数是样式类型:1代表段落;2代表字符;3代表表格)
style = doc.styles.add_style('style name 1', 2)
 
#设置具体样式(修改样式字体为蓝色,当然还可以修改其他的,大家自己尝试)
style.font.color.rgb = RGBColor(0x0, 0x0, 0xff)

6、应用字符样式。字符自然是在段落里面的,可以采用下面方法给段落追加文字和设置字符样式。

#插入一个空白段落
p = doc.add_paragraph('')
p.add_run('123', style="Heading 1 Char")
p.add_run('456')
p.add_run('789', style="Heading 2 Char")
 
#这样一个段落就应用了两个字符样式,中间“456”就没应用样式
print p.text #输出结果是u'123456789' 也还是连续的

7、设置字体。当然可以不用通过设置样式对某些字进行设置,也可以直接设置。

p = doc.add_paragraph('')
r = p.add_run('123')
r.font.bold = True #加粗
r.font.italic = True #倾斜 等等...

8、表格操作。表格也是经常用到的一种对象类型。

#新建一个2x3的表格,style可以不写
table=doc.add_table(rows=2,cols=3,style=None)
 
#可以用table 的rows和columns得到这个表格的行数和列数
print len(table.rows)
print len(table.columns)
 
#遍历表格
for row in table.rows:
 row.cells[0].text = '1'
 #print row.cells[0].text
 
#新增行或列
table.add_row()
table.add_column()

Word常见操作差不多就是这些。大家可以查看帮助文档,也可以用dir和help查看对象的方法属性和帮助。

以上这篇Python读写docx文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中list列表的一些进阶使用方法介绍
Aug 15 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
用Python实现筛选文件脚本的方法
Oct 27 Python
Python 数值区间处理_对interval 库的快速入门详解
Nov 16 Python
python实现三次样条插值
Dec 17 Python
python爬虫获取小区经纬度以及结构化地址
Dec 30 Python
python实现的爬取电影下载链接功能示例
Aug 26 Python
如何基于python测量代码运行时间
Dec 25 Python
python中threading开启关闭线程操作
May 02 Python
如何基于Django实现上下文章跳转
Sep 16 Python
python 获取谷歌浏览器保存的密码
Jan 06 Python
python docx 中文字体设置的操作方法
May 08 #Python
Python解析并读取PDF文件内容的方法
May 08 #Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 #Python
对Python中gensim库word2vec的使用详解
May 08 #Python
用python处理MS Word的实例讲解
May 08 #Python
基于python批量处理dat文件及科学计算方法详解
May 08 #Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 #Python
You might like
php,ajax实现分页
2008/03/27 PHP
php flush类输出缓冲剖析
2008/10/19 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
[04:59]DOTA2-DPC中国联赛 正赛 Ehome vs iG 选手采访
2021/03/11 DOTA
举例区分Python中的浅复制与深复制
2015/07/02 Python
python字典的常用操作方法小结
2016/05/16 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
Python递归函数特点及原理解析
2020/03/04 Python
keras实现多种分类网络的方式
2020/06/11 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
军训感想500字
2014/02/20 职场文书
财务负责人岗位职责
2015/02/03 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
企业宣传稿范文
2015/07/23 职场文书
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis