python无法处理.doc文件,所以先将.doc文件转化为.docx文件,再处理.docx
一、.doc转化为.docx、.pdf、.txt……
python无法处理.doc文件,但可以处理.docx文件,先将.doc转为.docx
from win32com import client as wc
#word = wc.Dispatch("Word.Application")
#启动独立的进程,推荐这种
word = wc.DispatchEx("Word.Application")
# 后台运行,不显示,不警告
w.Visible = False
w.DisplayAlerts = 0
doc = word.Documents.Open(r'D:\Projects\CA\script\CA0218748520031015-DNAv01.DOC')
doc.SaveAs(r'D:\Projects\CA\script\CA0218748520031015-DNAv01.docx', 12, False, '', True, '', False, False, False, False) #12为docx
doc.Close()
word.Quit()
若将参数“12”换成“2”,就可将.doc转成.txt
根据参数设置可以将word文件转换成任意格式文件
wdFormatDocument | 0 |
wdFormatDocument97 | 0 |
wdFormatTemplate | 1 |
wdFormatTemplate97 | 1 |
wdFormatText | 2 |
wdFormatTextLineBreaks | 3 |
wdFormatDOSText | 4 |
wdFormatDOSTextLineBreaks | 5 |
wdFormatRTF | 6 |
wdFormatEncodedText | 7 |
wdFormatUnicodeText | 7 |
wdFormatHTML | 8 |
wdFormatWebArchive | 9 |
wdFormatFilteredHTML | 10 |
wdFormatXML | 11 |
wdFormatXMLDocument | 12 |
wdFormatXMLDocumentMacroEnabled | 13 |
wdFormatXMLTemplate | 14 |
wdFormatXMLTemplateMacroEnabled | 15 |
wdFormatDocumentDefault | 16 |
wdFormatPDF | 17 |
wdFormatXPS | 18 |
wdFormatFlatXML | 19 |
wdFormatFlatXMLMacroEnabled | 20 |
wdFormatFlatXMLTemplate | 21 |
wdFormatFlatXMLTemplateMacroEnabled | 22 |
word文件转html有两种格式可选wdFormatHTML、wdFormatFilteredHTML(对应数字8、10),区别是如果是wdFormatHTML格式的话,word文件里面的公式等ole对象将会存储成wmf格式,而选用wdFormatFilteredHTML的话公式图片将存储为gif格式,而且目测可以看出用wdFormatFilteredHTML生成的HTML明显比wdFormatHTML要干净许多。
二、读取.docx
#读取.docx
import docx
#获取文档对象
file=docx.Document(r'D:\Projects\CA\script\CA0218748520031015-DNAv01.docx')
print("段落数:"+str(len(file.paragraphs)))
#输出每一段的内容
for para in file.paragraphs:
print(para.text)
#输出段落编号及段落内容
for i in range(len(file.paragraphs)):
print("第"+str(i)+"段的内容是:"+file.paragraphs[i].text)