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 相关文章推荐
如何解决django配置settings时遇到Could not import settings 'conf.local'
Nov 18 Python
Django中对通过测试的用户进行限制访问的方法
Jul 23 Python
python通过pip更新所有已安装的包实现方法
May 19 Python
Python使用base64模块进行二进制数据编码详解
Jan 11 Python
对python实现合并两个排序链表的方法详解
Jan 23 Python
python读取大文件越来越慢的原因与解决
Aug 08 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
python模块导入的方法
Oct 24 Python
pytorch之Resize()函数具体使用详解
Feb 27 Python
如何基于python把文字图片写入word文档
Jul 31 Python
Python爬虫之Selenium库的使用方法
Jan 03 Python
python常见的占位符总结及用法
Jul 02 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下通过file_get_contents的代理使用方法
2011/02/16 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
2014/06/23 PHP
php利用事务处理转账问题
2015/04/22 PHP
php中switch语句用法详解
2015/08/17 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
2015/08/20 Javascript
javascript实现简单的ajax封装示例
2016/12/28 Javascript
简单的渐变轮播插件
2017/01/12 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
JavaScript实现切换多张图片
2021/01/27 Javascript
浅谈用VSCode写python的正确姿势
2017/12/16 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
详解Python 正则表达式模块
2018/11/05 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
python 操作hive pyhs2方式
2019/12/21 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
用python对oracle进行简单性能测试
2020/12/05 Python
生物技术研究生自荐信
2013/11/12 职场文书
业务经理的岗位职责
2013/11/16 职场文书
学校个人对照检查材料
2014/08/26 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
党建工作汇报材料
2014/12/24 职场文书
2015年入党决心书
2015/02/05 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
校长一岗双责责任书
2015/05/09 职场文书
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android