欢迎来到山村网

python读取word文档的方法

2019-03-02 12:34:44浏览:859 来源:山村网   
核心摘要:  本文实例讲述了python读取word文档的方法。分享给大家供大家参考。具体如下:  首先下载安装win32com  ? 123456from win

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

  首先下载安装win32com

  ?

1 2 3 4 5 6 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方式读取,应当写成

  ?

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

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

  在xp系统下面,应当,

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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.

  ?

1 2 3 4 5 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()

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 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'xa3xa8s*[A-D]s*xa3xa9','()',strings) #不要(),容易引起歧义。

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

(责任编辑:豆豆)
下一篇:

Python itertools模块详解

上一篇:

python动态性强类型用法实例

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com