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 相关文章推荐
Python 过滤字符串的技巧,map与itertools.imap
Sep 06 Python
Python实现统计代码行的方法分析
Jul 12 Python
python通过伪装头部数据抵抗反爬虫的实例
May 07 Python
pip命令无法使用的解决方法
Jun 12 Python
python opencv读mp4视频的实例
Dec 07 Python
Python OS模块实例详解
Apr 15 Python
Python中的pathlib.Path为什么不继承str详解
Jun 23 Python
django 读取图片到页面实例
Mar 27 Python
python实现对变位词的判断方法
Apr 05 Python
基于Python爬取京东双十一商品价格曲线
Oct 23 Python
基于Python的EasyGUI学习实践
May 07 Python
python 如何将两个实数矩阵合并为一个复数矩阵
May 19 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
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
return false,对阻止事件默认动作的一些测试代码
2010/11/17 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
微信小程序实现指定显示行数多余文字去掉用省略号代替
2018/07/25 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
python2.6.6如何升级到python2.7.14
2018/04/08 Python
Python线程之定位与销毁的实现
2019/02/17 Python
python3.5安装python3-tk详解
2019/04/26 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
python处理excel绘制雷达图
2019/10/18 Python
Python单链表原理与实现方法详解
2020/02/22 Python
Django在Model保存前记录日志实例
2020/05/14 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
html5唤醒APP小记
2019/03/27 HTML / CSS
授权委托书
2014/07/31 职场文书
授权委托书范文
2014/07/31 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
结婚幸福感言
2015/08/01 职场文书
反邪教学习心得体会
2016/01/15 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js
python中pandas对多列进行分组统计的实现
2021/06/18 Python
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS
tree shaking对打包体积优化及作用
2022/07/07 Java/Android