python读取word文档的方法


Posted in Python onMay 09, 2015

本文实例讲述了python读取word文档的方法。分享给大家供大家参考。具体如下:

首先下载安装win32com

from win32com import client as wc
word = wc.Dispatch('Word.Application')
doc = word.Documents.Open('c:/test')
doc.SaveAs('c:/test.text', 2)
doc.Close()
word.Quit()

这种方式产生的text文档,不能用python用普通的r方式读取,为了让python可以用r方式读取,应当写成

doc.SaveAs('c:/test', 4)

注意:系统执行完成后,会自动产生文件后缀txt(虽然没有指明后缀)。
在xp系统下面,应当,

open(r'c:\text','r')
wdFormatDocument = 0
wdFormatDocument97 = 0
wdFormatDocumentDefault = 16
wdFormatDOSText = 4
wdFormatDOSTextLineBreaks = 5
wdFormatEncodedText = 7
wdFormatFilteredHTML = 10
wdFormatFlatXML = 19
wdFormatFlatXMLMacroEnabled = 20
wdFormatFlatXMLTemplate = 21
wdFormatFlatXMLTemplateMacroEnabled = 22
wdFormatHTML = 8
wdFormatPDF = 17
wdFormatRTF = 6
wdFormatTemplate = 1
wdFormatTemplate97 = 1
wdFormatText = 2
wdFormatTextLineBreaks = 3
wdFormatUnicodeText = 7
wdFormatWebArchive = 9
wdFormatXML = 11
wdFormatXMLDocument = 12
wdFormatXMLDocumentMacroEnabled = 13
wdFormatXMLTemplate = 14
wdFormatXMLTemplateMacroEnabled = 15
wdFormatXPS = 18

照着字面意思应该能对应到相应的文件格式,如果你是office 2003可能支持不了这么多格式。word文件转html有两种格式可选wdFormatHTML、wdFormatFilteredHTML(对应数字 8、10),区别是如果是wdFormatHTML格式的话,word文件里面的公式等ole对象将会存储成wmf格式,而选用 wdFormatFilteredHTML的话公式图片将存储为gif格式,而且目测可以看出用wdFormatFilteredHTML生成的HTML 明显比wdFormatHTML要干净许多。

当然你也可以用任意一种语言通过com来调用office API,比如PHP.

from win32com import client as wc
word = wc.Dispatch('Word.Application')
doc = word.Documents.Open(r'c:/test1.doc')
doc.SaveAs('c:/test1.text', 4)
doc.Close()
import re
strings=open(r'c:\test1.text','r').read()
result=re.findall('\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)|\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)',strings)
chan=re.sub('\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)|\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)','()',strings)
question=open(r'c:\question','a+')
question.write(chan)
question.close()
answer=open(r'c:\answeronly','a+')
for i,a in enumerate(result):
 m=re.search('[A-D]',a)
 answer.write(str(i+1)+' '+m.group()+'\n')
answer.close()
chan=re.sub(r'\xa3\xa8\s*[A-D]\s*\xa3\xa9','()',strings)
#不要(),容易引起歧义。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
使用cx_freeze把python打包exe示例
Jan 24 Python
Python下的subprocess模块的入门指引
Apr 16 Python
python数据结构之图深度优先和广度优先实例详解
Jul 08 Python
Python argv用法详解
Jan 08 Python
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
python实现按长宽比缩放图片
Jun 07 Python
python 限制函数执行时间,自己实现timeout的实例
Jan 12 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
Apr 02 Python
python如何删除列为空的行
Jul 17 Python
基于Python实现下载网易音乐代码实例
Aug 10 Python
python3.5的包存放的具体路径
Aug 16 Python
python动态性强类型用法实例
May 09 #Python
Python functools模块学习总结
May 09 #Python
Python浅拷贝与深拷贝用法实例
May 09 #Python
九步学会Python装饰器
May 09 #Python
Python类属性与实例属性用法分析
May 09 #Python
python回调函数用法实例分析
May 09 #Python
python类和函数中使用静态变量的方法
May 09 #Python
You might like
基于mysql的bbs设计(一)
2006/10/09 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
php生成微信红包数组的方法
2019/09/05 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
JSON 教程 json入门学习笔记
2020/09/22 Javascript
js jquery数组介绍
2012/07/15 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
js 性能优化之算法和流程控制
2017/02/15 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
JS精确判断数据类型代码实例
2019/12/18 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
javascript中layim之查找好友查找群组
2021/02/06 Javascript
Python面向对象编程之继承与多态详解
2018/01/16 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
python爬取指定微信公众号文章
2018/12/20 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
家具促销活动方案
2014/02/16 职场文书
个人委托书范本
2014/09/13 职场文书
战略性融资合作协议书范本
2014/10/17 职场文书
英语演讲开场白
2015/05/29 职场文书
立春观后感
2015/06/18 职场文书
敬老院活动感想
2015/08/07 职场文书
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android