Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để đọc Microsoft Word với Python?

Giới thiệu ...

Không xúc phạm, tôi không thích Microsoft từ cũng như bảng tính. Là một chuyên gia về Kỹ thuật dữ liệu, tôi thường nhận được kết quả kiểm tra từ những người kiểm tra trong Microsoft word. Thở dài! họ đưa rất nhiều thông tin vào tài liệu word ngay từ khi chụp ảnh màn hình, liên kết, các đoạn văn bản lớn, rất lớn, rất lớn. Microsoft word có tài năng đặc biệt trong việc biến những gì lẽ ra là các tài liệu văn bản đơn giản hoặc thông tin nhỏ thành những con thú lớn, chậm, khó mở và thường làm mất định dạng từ máy này sang máy khác.

Nhưng, tôi cần phải chấp nhận sự thật rằng điều gì là xấu đối với tôi thì lại rất tốt cho người khác và ngược lại.

Quay lại ngữ cảnh, hỗ trợ Python cho word không phải là tuyệt vời. Thư viện Python-docx cung cấp cho người dùng khả năng tạo tài liệu và chỉ đọc dữ liệu tệp cơ bản như kích thước và tiêu đề của tệp, không phải nội dung thực tế. Vì vậy, đối với tôi để xử lý kết quả kiểm tra phải đưa ra mã tùy chỉnh.

Tôi sẽ nhập một tài liệu từ mẫu có sẵn trên internet. Tệp ở vị trí - https://file-examples-com.github.io/uploads/2017/02/file-sample_100kB.docx.

Cách thực hiện ...

1. Hãy để chúng tôi bắt đầu với việc nhập khẩu.

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

2.Bây giờ chúng ta sẽ đọc tài liệu Word từ xa dưới dạng đối tượng tệp nhị phân. Sau đó, chúng tôi giải nén nó bằng thư viện zipfile, rồi đọc tệp đã giải nén, đó là XML.

Trước hết, chúng tôi sẽ in nội dung.

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 sit amet, consectetur adipiscing elit. Nunc ac faucibus odio.   
 
                                   
 
                                   Vestibulum neque massa, scelerisque sit amet ligula eu, congue moltie mi. Praesent ut varius sem. Nullam ở porttitor arcu, lacinia nisi. Út ac dolor vitae odio interdum condimentum.                Vivamus dapibus sodales ex, vitae malesuada ipsum cursus cheo. Maecenas sed egestas nulla, ac condimentum orci.               Mauris diam felis, vulputate ac suscipit et, iaculis non est. Curabitur semper arcu ac ligula semper, luctus nisl blandit. Integer lacinia ante ac libero lobortis khiếm khuyết.                Nullam mollis allow ipsum, ac accumsan nuncectorsula vitae.               Nulla eget justo trong felis tristique fringilla. Morbi ngồi amet rùa bò quis risus auctor condimentum. Morbi trong ullamcorper elit. 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.   
 
                                         Nullaosystemisi.   
 
                                         Aenean congue fringilla justo ut aliquam.   
 
                                         Mauris id ex erat.                Nunc vulputate neque vitae justo secureisis, non condimentum ante sagittis.   
 
                                       Morbi viverra semper lorem n moltie.   
 
                                       Maecenas tincidunt est efficitur ligula euismod, sit amet ornare est vulputate.   
 
                                
 
                                   
 
                                   
 
                                   
 
                                   
 
                                   
 
                                   
 
                                   
 
                                   
 
                                   Không phải mauris justo. Duisosystemula mi vel mi pretium, một loài viverra erat efficitur. Cras aliquam est ac eros varius, id iaculis dui auctor. Duis pretium neque ligula, et pulvinar mi placerat et. Nulla nunc sit amet nunc posuere vestibulum. Út id neque eget rùa bò mattis tristique. Donec ante est, blandit sit amet tristique vel, lacinia pulvinar arcu. Bìm bìm bìm biếc. Cras id eros sed enim aliquam lobortis. Sed lobortis nisl ut eros efficitur tincidunt. Cras justo mi, porttitor quis mattis vel, ultricies ut purus. Cô gái thuận lợi trong công việc.   
 
                                   Ở eleifend velit vitae libero sollicitudin euismod. Fusce vitae vestibulum velit. Chất chống thấm lectus quis phesiaesque goodso. Aliquam erat volutpat. Vestibulum trong ví dụ. Bọ hung trắng (Permanentesque fermentum nisl vitae) Etiam id mauris vitae orci maximus ultricies.   
 
                                   
 
                 C ras fringilla ipsum magna, trong fringilla dui Goodso a.   
 
                                   
                                               
                                   
                  
                                   Lorem ipsum   
                  
               Lorem ipsum   
                  
               Lorem ipsum   
                       
               1