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中logging模块的用法实例
Sep 29 Python
python如何在循环引用中管理内存
Mar 20 Python
使用Python实现租车计费系统的两种方法
Sep 29 Python
python中使用while循环的实例
Aug 05 Python
python通过实例讲解反射机制
Oct 17 Python
浅析Django中关于session的使用
Dec 30 Python
根据tensor的名字获取变量的值方式
Jan 04 Python
Python StringIO如何在内存中读写str
Jan 07 Python
python3爬取torrent种子链接实例
Jan 16 Python
Windows下实现将Pascal VOC转化为TFRecords
Feb 17 Python
Python实现多线程下载脚本的示例代码
Apr 03 Python
Scrapy中如何向Spider传入参数的方法实现
Sep 28 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
如何使用脚本模仿登陆过程
2006/11/22 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
PHP生成二维码的两个方法和实例
2014/07/01 PHP
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
PHP 断点续传实例详解
2017/11/11 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
javascript 类方法定义还是有点区别
2009/04/15 Javascript
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
2018/10/11 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
Python下的twisted框架入门指引
2015/04/15 Python
Python易忽视知识点小结
2015/05/25 Python
python enumerate函数的使用方法总结
2017/11/15 Python
python 实现客户端与服务端的通信
2020/12/23 Python
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
考试作弊被抓检讨书
2014/10/02 职场文书
把77A收信机改造成收音机
2022/04/05 无线电