如何在 Linux 上使用 Python 读取 word 文件信息

如何在 Linux 上使用 Python 读取 word 文件信息,第1张

首先下载安装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读取文本文件内容的方法主要有三种:read()、readline()、readlines()。

第一种:read()

read()是最悔逗兆简单的一种方法,一次性读取文件的所有内容放在一个大字符串中,即内存中。

read()的好处:方便、简单,一次性读出文件放在一个大字符串中,速度最快。

read()的坏处:文件过大的时候,占用内存会过大。

第二种:readline()

readline()逐碧租行读取文本,结果是一个list。

readline()的好处:占用内存小,逐行读取。

readline()的坏处:逐行读取,速度比较慢。

第三种:readlines()

readlines()一次性读取文本的所有内容指旦,结果是一个list。

readlines()的好处:一次性读取文本内容,速度比较快。

readlines()的坏处:随着文本的增大,占用内存会越来越多。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8157471.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存