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 打印对象的所有属性值的方法
Sep 11 Python
Python学习pygal绘制线图代码分享
Dec 09 Python
Tensorflow 同时载入多个模型的实例讲解
Jul 27 Python
详解python中的线程与线程池
May 10 Python
在Python中表示一个对象的方法
Jun 25 Python
Python及Pycharm安装方法图文教程
Aug 05 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
Feb 11 Python
python 实现线程之间的通信示例
Feb 14 Python
python打开文件的方式有哪些
Jun 29 Python
Python爬虫爬取微信朋友圈
Aug 06 Python
python中使用.py配置文件的方法详解
Nov 23 Python
Django给表单添加honeypot验证增加安全性
May 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
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
Javascript 遍历页面text控件详解
2014/01/06 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
JavaScript获取当前cpu使用率的方法
2015/12/15 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
vue内置组件component--通过is属性动态渲染组件操作
2020/07/28 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
Python第三方库的安装方法总结
2016/06/06 Python
python线程中同步锁详解
2018/04/27 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
linux面试题参考答案(11)
2012/05/01 面试题
人事行政主管岗位职责
2013/12/22 职场文书
幼儿园庆六一游园活动方案
2014/01/29 职场文书
绿色学校实施方案
2014/03/31 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
Python自动化爬取天眼查数据的实现
2021/06/15 Python
pandas进行数据输入和输出的方法详解
2022/03/23 Python