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 文件和输入输出小结
Oct 09 Python
使用Python脚本对Linux服务器进行监控的教程
Apr 02 Python
Python自动调用IE打开某个网站的方法
Jun 03 Python
Python导出DBF文件到Excel的方法
Jul 25 Python
Python 实现 贪吃蛇大作战 代码分享
Sep 07 Python
Python三级菜单的实例
Sep 13 Python
Python通过Django实现用户注册和邮箱验证功能代码
Dec 11 Python
python自动发邮件库yagmail的示例代码
Feb 23 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
Oct 17 Python
TensorFlow 显存使用机制详解
Feb 03 Python
Python爬取阿拉丁统计信息过程图解
May 12 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代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
微信支付扫码支付php版
2016/07/22 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
动态控制Table的js代码
2007/03/07 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
Highcharts使用简例及异步动态读取数据
2015/12/30 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
Python的函数嵌套的使用方法
2014/01/24 Python
简单介绍Python的Tornado框架中的协程异步实现原理
2015/04/23 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
Python变量访问权限控制详解
2019/06/29 Python
python字典的遍历3种方法详解
2019/08/10 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
Python json转字典字符方法实例解析
2020/04/13 Python
科尔士百货公司官网:Kohl’s
2016/07/11 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
大学应届生的自我评价
2014/03/06 职场文书
民主生活会汇报材料
2014/12/15 职场文书
居委会工作总结2015
2015/05/18 职场文书
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python