如何使用Python读取Microsoft Word?

介绍...

没有冒犯,我不喜欢Microsoft既不使用电子表格,也不使用电子表格。作为数据工程专家,我经常以Microsoft Word接收测试人员的测试结果。叹!他们从捕获屏幕快照,链接,大,非常大,非常大的段落中就将大量信息输入到Word文档中。Microsoft word具有独特的才能,可以将应该是简单的文本文档或少量信息的内容转换为大型,缓慢,讨厌打开的野兽,而这些野兽通常会在机器之间失去格式。

但是,我需要接受这样一个事实,对我而言,曾经有害的一切对他人都是有益的,反之亦然。

回到上下文,Python对单词的支持不是很好。Python-docx库使用户能够创建文档并仅读取基本文件数据,例如文件的大小和标题,而不是实际内容。因此,对我来说,处理测试结果必须提供自定义代码。

我将导入互联网上可用的Word文档样本。该文件位于以下位置-https://file-examples-com.github.io/uploads/2017/02/file-sample_100kB.docx

怎么做...

1.让我们从进口开始。

from zipfile import ZipFile
from urllib.request import urlopen
from io import BytesIO

2.现在,我们将读取远程Word文档作为二进制文件对象。然后,我们使用zipfile库将其解压缩,然后读取解压缩的文件XML。

当然,我们将打印内容。

file_url = 'https://file-examples-com.github.io/uploads/2017/02/file-sample_100kB.docx'

# read the word document
wordDocx = urlopen(file_url).read()
wordDocx = BytesIO(wordDocx)
document = ZipFile(wordDocx)

#get the xml content
xml_content = document.read('word/document.xml')

# print the xml content
print(xml_content.decode('utf-8'))


<?xml version ='1.0'encoding ='UTF-8'standalone ='是'?>bw:val ='false'/> <w:iw:val ='false'/> <w:caps w:val ='false'/> <w:smallCaps w:val ='false'/> <w:颜色w:val ='000000'/> <w:间距w:val ='0'/> <w:sz w:val = '21'/> </ w:rPr> </ w:r> </ w:p> <w:p> <w:pPr> <w:pStyle w:val ='Heading1'/> <w:keepNext /> <w:numPr> <w:ilvl w:val ='0'/ > <w:numId w:val ='1'/> </ w:numPr> <w:间隔w:before ='240'w:after ='120'/> <w:ind w:left ='0 'w:right ='0'w:hanging ='432'/> <w:rPr> </ w:rPr> </ w:pPr> <w:r> <w:rPr> </ w:rPr> <w:t xml:space ='preserve'> Lorem ipsum dolor就座,安全奉献。Nunc ac faucibus dioo。</ w:t> </ w:r> </ w:p> <w:p> < 大写w:val ='false'/> <w:smallCaps w:val ='false'/> <w:color w:val ='000000'/> <w:spacing w:val ='0'/> < w:sz w:val = '21'/> </ w:rPr> </ w:pPr> <w:r> <w:rPr> <w:rFonts w:cs ='DejaVu Sans'w:ascii = 'DejaVu Sans'w:hAnsi ='DejaVu Sans'/> <w:bw:val ='false'/> <w:iw:val ='false'/> <w:caps w:val ='false'/ > <w:smallCaps w:val ='false'/> <w:color w:val ='000000'/> <w:spacing w:val ='0'/> <w:sz w:val = '21 '/> </ w:rPr> <w:t xml:space ='preserve'>前庭马萨马,明星坐在艾米特·利古拉(emet ligula eu)上,坐在小教堂里。Praesent ut varius sem。Nullam at Porttitor arcu,nec lacinia nisi。统一调味品。</ w:t> </ w:r> <w:r> <w:rPr> <w:rFonts w:cs ='DejaVu Sans'w:ascii ='DejaVu Sans'w:hAnsi ='DejaVu Sans'/> <w:b /> <w:bCs /> <w:iw:val ='false'/> <w:smallCaps w:val ='false'/> <w:color w:val ='000000 '/> <w:spacing w:val ='0'/> <w:sz w:val = '21'/> </ w:rPr> <w:t xml:space ='preserve'> Vivamus dapibus sodales例如,履历表。Maecenas s edegestas nulla,ac调味品。</ w:t> </ w:r> <w:r> <w:rPr> <w:rFonts w:cs ='DejaVu Sans'w:ascii ='DejaVu Sans'w:hAnsi ='DejaVu Sans' /> <w:bw:val ='false'/> <w:caps w:val ='false'/> <w:smallCaps w:val ='false' /> <w:颜色w:val ='000000'/> <w:spacing w:val ='0'/> <w:sz w:val = '21'/> </ w:rPr> <w:t xml:space ='preserve' >毛里斯·迪亚斯·菲利斯(Mauris diam felis),不耐烦交流等,不合时宜的是Curabitur semper arcu ac ligula semper,nec luctus nisl blandit。整数拉丁裔ac ero libortis imperdiet。</ w:t> </ w:r> <w:r> <w:rPr> <w:rFonts w:cs ='DejaVu Sans'w:ascii ='DejaVu Sans'w:hAnsi ='DejaVu Sans' /> <w:bw:val ='false'/> <w:i /> <w:iCs /> <w:caps w:val ='false'/> <w:smallCaps w:val ='false' /> <w:颜色w:val ='000000'/> <w:间距w:val ='0'/> <w:sz w:val = '21'/> </ w:rPr> <w: t xml:space ='preserve'> Nullam mollis convallis ipsum,应收账款。</ w:t> </ w:r> <w:r> <w:rPr> <w:rFonts w:cs ='DejaVu Sans'w:ascii ='DejaVu Sans'w:hAnsi ='DejaVu Sans'/> <w:bw:val =' false'/> <w:iw:val ='false'/> <w:caps w:val ='false'/> <w:smallCaps w:val ='false'/> <w:color w:val = '000000'/> <w:spacing w:val ='0'/> <w:sz w:val = '21'/> </ w:rPr> <w:t> Nulla在felis tristique fringilla中获得了Justo。莫比坐在amet tor quis risus auctor调味品。莫拉(Ultracorper)中的莫尔比。Nulla iaculistellus坐在amet毛里斯tempus fringilla。</ w:t> </ w:r> </ w:p> <w:p> <w:pPr> <w:pStyle w:val ='TextBody'/> <w:widowControl /> <w:pBdr> <w:top w:val ='nil'/> <w:left w:val ='nil'/> <w:bottom w:val ='nil'/> <w:正确w:/> <w:smallCaps w:val ='false'/> <w:color w:val ='000000'/> <w:spacing w:val ='0'/> <w:sz w:val =' 21'/> </ w:rPr> </ w:pPr> <w:r> <w:rPr> <w:rFonts w:cs ='DejaVu Sans'w:ascii ='DejaVu Sans'w:hAnsi = 'DejaVu Sans'/> <w:b /> <w:bCs /> <w:iw:val ='false'/> <w:caps w:val ='false'/> <w:smallCaps w:val ='false'/> <w:color w:val ='000000'/> <w:spacing w:val ='0'/> <w:sz w:val = '21'/> </ w:rPr > <w:t xml:space ='preserve'>非本地地址。</ w:t> </ w:r> </ w:p> <w:p> <w:pPr> <w:pStyle w:val ='TextBody'/> <w:widowControl /> <w: numPr> <w:ilvl w:val ='0'/> <w:numId w:val ='2' iCs /> <w:caps w:val ='false'/> <w:smallCaps w:val ='false'/> <w:color w:val ='000000'/> <w:spacing w:val = '0'/> <w:sz w:val = '21'/> </ w:rPr> <w:t xml:space ='preserve'> Nulla facilisi。</ w:t> </ w:r> </ w:p> <w:p> <w:pPr> <w:pStyle w:val ='TextBody'/> <w:widowControl /> <w: numPr> <w:ilvl w:val ='0'/> <w:numId w:val ='2'/> </ w:numPr> <w:pBdr> <w:top w:val ='nil' /> <w:左w:val ='nil'/> <w:底部w:val ='nil'/> <w:右w:val ='nil'/> </ w:pBdr> <w:间距w:before ='0'w:after ='225'/> <w:jc w:val ='both'/> <w:rPr> <w:rFonts w:cs ='DejaVu Sans'w:ascii ='DejaVu Sans'w:hAnsi =' DejaVu Sans'/> <w:bw:val ='false'/> <w:iw:val ='false'/> <w:caps w:val ='false'/> <w:smallCaps w:val = 'false'/> <w:颜色w:val ='000000'/> <w:间距w:val ='0'/> <w:sz w:val = '21'/> <w:uw:val ='single'/> </ w:rPr> </ w:pPr> <w:r> <w:rPr> <w:rFonts w:cs ='DejaVu Sans'w:ascii ='DejaVu Sans'w: hAnsi ='DejaVu Sans'/> <w:bw:val ='false'/> <w:iw:val ='false'/> <w:caps w:val ='false'/> <w:smallCaps w :val ='false'/> <w:颜色w:val ='000000'/> <w:间距w:val ='0'/> <w:sz w:val = '21'/> <w: uw:val ='single'/> </ w:rPr> <w:t xml:space ='preserve'> Aenean congue fringilla justo ut aliquam。</ w:rPr> </ w:pPr> <w:超链接r:id ='rId2'> <w:r> <w:rPr> <w:rStyle w:val ='InternetLink'/> <w:rFonts w:cs ='DejaVu Sans'w:ascii ='DejaVu Sans'w:hAnsi ='DejaVu Sans'/> <w:bw:val ='false'/> <w:iw:val ='false'/> <w:大写w:val ='false'/> <w:smallCaps w:val ='false'/> <w:color w:val ='000000'/> <w:spacing w:val ='0'/> < w:sz w:val = '21'/> </ w:rPr> <w:t xml:space ='preserve'> Mauris ID已过时。</ w:t> </ w:r> </ w:hyperlink> <w:r> <w:rPr> <w:rFonts w:cs ='DejaVu Sans'w:ascii ='DejaVu Sans'w: hAnsi ='DejaVu Sans'/> <w:bw:val ='false'/> <w:iw:val ='false'/> <w:caps w:val ='false'/> <w:smallCaps w :val ='false'/> <w:颜色w:val ='000000'/> <w:间距w:val ='0'/> <w:sz w:val = '21'/> </ w: rPr> <w:t xml:space ='preserve'> Nunc短齿状的无花果新品种,无调味剂。</ w:t> </ w:r> </ w:p> <w:p> <w:pPr> <w:pStyle w:val ='TextBody'/> <w:widowControl /> <w: numPr> <w:ilvl w:val ='0'/> <w:numId w:val ='2'/> </ w:numPr> <w:pBdr> <w:top w:val ='nil' /> <w:左w:val ='nil'/> <w:底部w:val ='nil'/> <w:右w:val ='nil'/> </ w:pBdr> <w:间距w:before ='0'w:after ='225'/> <w:jc w:val ='both'/> <w:rPr> <w:rFonts w:cs ='DejaVu Sans'w:ascii ='DejaVu Sans'w:hAnsi =' DejaVu Sans'/> <w:bw:val ='false'/> <w:iw:val ='false'/> <w:caps w:val ='false'/> <w:smallCaps w:val = 'false'/> <w:颜色w:val ='000000'/> <w:间距w:val ='0'/> <w:sz w:val = '21'/> </ w:rPr> </ w:pPr> <w:r> <w:rPr> <w:rFonts w:cs ='DejaVu Sans'w:ascii ='DejaVu Sans'w:hAnsi ='DejaVu Sans'/> <w:bw :val ='false'/> <w:iw:val ='false'/> <w:caps w:val ='false'/> <w:smallCaps w:val ='false'/> <w:color w:val ='000000'/> <w:spacing w:val ='0'/> <w:sz w:val = '21'/> </ w:rPr> <w:t xml:space ='保留'> Morbi viverra semper lorem nec痣。</ w:t> </ w:r> </ w:p> <w:p> <w:pPr> <w:pStyle w:val ='false'/> <w:iw:val ='false'/> <w:caps w:val ='false'/> <w:smallCaps w:val ='false'/> <w:color w :val ='000000'/> <w:spacing w:val ='0'/> <w:sz w:val = '21'/> </ w:rPr> <w:t>在非毛里求斯风格中。Duis vehicula mi vel mi pretium,一种除草剂。Cras aliquam est ac eros varius,id iaculis dui auctor。Duis pretium neque ligula,等。Nulla nec nunc坐在amet nunc posuere前庭。Ut id neque eget Tortor Mattis tristique。多尼茨·安斯特·埃斯特(Bonit)Pellentesque星形发酵发酵罐,编号posuere justo pulvinar ut。Cras id eros sed enim aliquam lobortis。Sed lobortis nisl ut eros efficitur tincidunt。Cras justo mi,porttitor quis mattis vel,乌尔特里普鲁斯。rFonts w:cs ='DejaVu Sans'w:ascii ='DejaVu Sans'w:hAnsi ='DejaVu Sans'/> <w:bw:val ='false'/> <w:iw:val ='false'/ > <w:caps w:val ='false'/> <w:smallCaps w:val ='false'/> <w:color w:val ='000000'/> <w:spacing w:val ='0 '/> <w:sz w:val = '21'/> </ w:rPr> <w:t xml:space ='preserve'>在elevelend velit vitae libero sollicitudin euismod中。Fusce vitae前庭天鹅绒。Pellentesque vulputate lectus quis pellentesque commodo。Aliquam Erat Volutpat。雌蕊天鹅绒中的前庭。Pellentesque fermentum nisl vitae fringilla venenatis。Etiam id mauris vitae orci maximus ultricies。</ w:t> </ w:r> </ w:p> <w:p> <w:pPr> <w:pStyle w:val ='TextBody'/> <w:widowControl /> <w: pBdr> <w:top w:val ='
猜你喜欢