Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python으로 Microsoft Word를 읽는 방법은 무엇입니까?

<시간/>

소개...

불쾌하지 않습니다. 저는 Microsoft Word나 스프레드시트를 좋아하지 않습니다. 데이터 엔지니어링 전문가이기 때문에 종종 테스터로부터 Microsoft Word로 테스트 결과를 받습니다. 한숨을 쉬다! 그들은 스크린샷, 링크, 크고, 매우 큰, 매우 큰 단락을 캡처하는 것부터 바로 워드 문서에 많은 정보를 넣습니다. 마이크로소프트 워드는 단순한 텍스트 문서나 작은 정보가 되어야 하는 것을 컴퓨터에서 컴퓨터로 종종 포맷을 잃는 크고 느리고 열리지 않는 짐승으로 바꾸는 데 특별한 재능을 가지고 있었습니다.

하지만 나에게 나쁜 것이 다른 사람들에게도 매우 좋고 그 반대도 마찬가지라는 사실을 받아들여야 합니다.

컨텍스트로 돌아가서, 단어에 대한 Python 지원은 좋지 않습니다. Python-docx 라이브러리는 사용자에게 문서를 생성하고 실제 내용이 아닌 파일의 크기 및 제목과 같은 기본 파일 데이터만 읽을 수 있는 기능을 제공합니다. 따라서 테스트 결과를 처리하려면 사용자 정의 코드가 나와야 합니다.

인터넷에서 구할 수 있는 샘플 워드 문서를 가져올 것입니다. 파일은 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'))



Lorem ipsum 



Lorem ipsum dolor 앉아 amet, consectetur adipiscing 엘리트. Nunc ac faucibus odio. 



 전정 neque massa, scelerisque sit amet ligula eu, congue molestie mi. Praesent ut varius sem. Nullam at porttitor arcu, nec lacinia nisi. Ut ac dolor vitae odio interdum condimentum.  Vivamus dapibus sodales ex, vitae malesuada ipsum cursus convallis. Maecenas sed egestas nulla, ac condimentum orci. Mauris diam felis, vulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, nec luctus nisl blandit. 정수 lacinia ante ac libero lobortis imperdiet. Nullam mollis convallis ipsum, ac accumsan nunc vehicula vitae. Nulla eget justo in felis tristique fringilla. Morbi sit amet tortor quis risus auctor condimentum. ullamcorper 엘리트의 Morbi. Nulla iaculis tellus sit amet mauris tempus fringilla.

   Maecenas mauris lectus, lobortis et purus mattis, blandit dictum tellus.

 Maecenas non lorem quis tellus placerat varius. 

허용되지 않습니다. 

Aenean congue fringilla justo ut aliquam. 

Mauris id ex erat. Nunc vulputate neque vitae justo facilisis, non condimentum ante sagittis. 

Morbi viverra semper lorem nec molestie. 

Maecenas tincidunt est efficitur ligula euismod, sit amet ornare est vulputate.

 

 

 



  



 

 

  

 비 마우리스 저스토. Duis vehicula mi vel mi pretium, a viverra erat efficitur. Cras aliquam est ac eros varius, id iaculis dui auctor. Duis pretium neque ligula, et pulvinar mi placerat et. Nulla nec nunc sit amet nunc posuere vestibulum. Ut id neque eget tortor mattis tristique. Donec ante est, blandit sit amet tristique vel, lacinia pulvinar arcu. Pellentesque scelerisque fermentum erat, id 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, ultricies ut purus. Ut facilisis et lacus eu cursus.

  엘리펜드 velit vitae libero solicitudin euismod. Fusce vitae vestibulum velit. Pellentesque vulputate lectus quis pellentesque commodo. Aliquam 에라트 볼룻팟. egestas velit의 현관. Pellentesque fermentum nisl vitae fringilla venenatis. Etiam id mauris vitae orci maximus ultricies. 



 C ras fringilla ipsum magna, in fringilla dui commodo a.

 
 
 

 Lorem ipsum
 
로렘 입섬

로렘 입섬

1