Làm cách nào để đọc docx bằng python?

Để đọc một tài liệu word, chúng tôi nhờ sự trợ giúp của mô-đun có tên docx. Đầu tiên chúng tôi cài đặt docx như hình dưới đây. Sau đó viết chương trình sử dụng các chức năng khác nhau trong mô-đun docx để đọc toàn bộ tệp theo đoạn văn

Chúng tôi sử dụng lệnh dưới đây để đưa mô-đun docx vào môi trường của chúng tôi

 pip install docx 

Trong ví dụ dưới đây, chúng tôi đọc nội dung của tài liệu từ bằng cách nối từng dòng vào một đoạn văn và cuối cùng in ra toàn bộ nội dung đoạn văn

import docx

def readtxt(filename):
    doc = docx.Document(filename)
    fullText = []
    for para in doc.paragraphs:
        fullText.append(para.text)
    return '\n'.join(fullText)

print (readtxt('path\Tutorialspoint.docx'))

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được đầu ra sau -

Tutorials Point originated from the idea that there exists a class of readers who respond 
better to online content and prefer to learn new skills at their own pace from the comforts 
of their drawing rooms. 

The journey commenced with a single tutorial on HTML in 2006 and elated by the response it generated, 
we worked our way to adding fresh tutorials to our repository which now proudly flaunts 
a wealth of tutorials and allied articles on topics ranging from programming languages 
to web designing to academics and much more.

Đọc các đoạn riêng lẻ

Chúng ta có thể đọc một đoạn cụ thể từ tài liệu từ bằng cách sử dụng thuộc tính đoạn văn. Trong ví dụ dưới đây, chúng tôi chỉ đọc đoạn thứ hai từ tài liệu từ

Bài đăng này sẽ nói về cách đọc Tài liệu Word bằng Python. Chúng tôi sẽ đề cập đến ba gói khác nhau – docx2txt, docx và yêu thích cá nhân của tôi. docx2python

Gói docx2txt

Trước tiên hãy nói về docx2text. Đây là gói Python cho phép bạn cạo văn bản và hình ảnh từ Tài liệu Word. Ví dụ dưới đây đọc trong Tài liệu Word có chứa Zen of Python. Như bạn có thể thấy, khi chúng tôi đã nhập docx2txt, tất cả những gì chúng tôi cần là một dòng mã để đọc văn bản từ Tài liệu Word. Chúng ta có thể đọc trong tài liệu bằng một phương thức trong gói có tên process, lấy tên của tệp làm đầu vào. Văn bản thông thường, các mục được liệt kê, văn bản siêu liên kết và văn bản bảng đều sẽ được trả về trong một chuỗi

import docx2txt

# read in word file
result = docx2txt.process("zen_of_python.docx")

Làm cách nào để đọc docx bằng python?



Nếu tập tin có hình ảnh thì sao? . Khi chúng ta chạy phương thức process, chúng ta có thể truyền một tham số bổ sung chỉ định tên của thư mục đầu ra. Đang chạy docx2txt. quá trình sẽ trích xuất bất kỳ hình ảnh nào trong Tài liệu Word và lưu chúng vào thư mục được chỉ định này. Văn bản từ tệp cũng sẽ được trích xuất và lưu trữ trong biến kết quả

import docx2txt

result = docx2txt.process("zen_of_python_with_image.docx", "C:/path/to/store/files")


Hình ảnh minh họa

Làm cách nào để đọc docx bằng python?



docx2txt cũng sẽ loại bỏ bất kỳ văn bản nào khỏi bảng. Một lần nữa, điều này sẽ được trả về thành một chuỗi với bất kỳ văn bản nào khác được tìm thấy trong tài liệu, điều đó có nghĩa là văn bản này có thể khó phân tích cú pháp hơn. Ở phần sau của bài đăng này, chúng ta sẽ nói về docx2python, cho phép bạn quét các bảng theo định dạng có cấu trúc hơn

gói docx

Mã nguồn đằng sau docx2txt được lấy từ mã trong gói docx, mã này cũng có thể được sử dụng để quét Tài liệu Word. docx là một thư viện mạnh mẽ để thao tác và tạo Tài liệu Word, nhưng cũng có thể (với một số hạn chế) đọc văn bản từ tệp Word

Trong ví dụ bên dưới, chúng tôi mở một kết nối đến tệp từ mẫu của mình bằng docx. phương pháp tài liệu. Ở đây chúng tôi chỉ nhập tên của tệp mà chúng tôi muốn kết nối với. Sau đó, chúng tôi có thể cạo văn bản từ từng đoạn trong tệp bằng cách sử dụng khả năng hiểu danh sách kết hợp với tài liệu. đoạn văn. Điều này sẽ bao gồm việc cạo các dòng riêng biệt được xác định trong Tài liệu Word cho các mục được liệt kê. Không giống như docx2txt, docx, không thể cạo hình ảnh từ Tài liệu Word. Ngoài ra, docx sẽ không loại bỏ các siêu liên kết và văn bản trong các bảng được xác định trong Tài liệu Word

import docx

# open connection to Word Document
doc = docx.Document("zen_of_python.docx")

# read in each paragraph in file
result = [p.text for p in doc.paragraphs]

Làm cách nào để đọc docx bằng python?

Gói docx2python

docx2python là một gói khác mà chúng ta có thể sử dụng để cạo Tài liệu Word. Nó có một số tính năng bổ sung ngoài docx2txt và docx. Ví dụ: nó có thể trả về văn bản được lấy từ một tài liệu ở định dạng có cấu trúc hơn. Hãy kiểm tra Tài liệu Word của chúng tôi với docx2python. Chúng tôi sẽ thêm một bảng đơn giản vào tài liệu để chúng tôi cũng có thể trích xuất bảng đó (xem bên dưới)

Làm cách nào để đọc docx bằng python?

docx2python chứa một phương thức có cùng tên. Nếu chúng ta gọi phương thức này với tên của tài liệu làm đầu vào, chúng ta sẽ lấy lại một đối tượng có một số thuộc tính

from docx2python import docx2python

# extract docx content
doc_result = docx2python('zen_of_python.docx')

Mỗi thuộc tính cung cấp văn bản hoặc thông tin từ tệp. Ví dụ: hãy xem xét rằng tệp của chúng tôi có ba thành phần chính – văn bản chứa Zen của Python, một bảng và một hình ảnh. Nếu chúng ta gọi doc_result. nội dung, mỗi thành phần này sẽ được trả về dưới dạng các mục riêng biệt trong danh sách

# get separate components of the document
doc_result.body

# get the text from Zen of Python
doc_result[0]

# get the image
doc_result[1] 

# get the table text
doc_result[2]

Cạo một bảng tài liệu từ với docx2python

Kết quả văn bản của bảng được trả về dưới dạng danh sách lồng nhau, như bạn có thể thấy bên dưới. Mỗi hàng (bao gồm cả tiêu đề) được trả về dưới dạng danh sách phụ riêng biệt. Phần tử thứ 0 của danh sách đề cập đến tiêu đề – hoặc hàng thứ 0 của bảng. Phần tử tiếp theo đề cập đến hàng tiếp theo trong bảng, v.v. Đổi lại, mỗi giá trị trong một hàng được trả về dưới dạng một danh sách con riêng lẻ trong danh sách tương ứng của hàng đó

Làm cách nào để đọc docx bằng python?

Chúng tôi có thể chuyển đổi kết quả này thành định dạng bảng bằng pandas. Khung dữ liệu vẫn còn hơi lộn xộn – mỗi ô trong khung dữ liệu là một danh sách chứa một giá trị. Giá trị này cũng có khá nhiều “\t”(đại diện cho không gian tab)

________số 8_______

Làm cách nào để đọc docx bằng python?

Ở đây, chúng tôi sử dụng phương thức applymap để áp dụng hàm lambda bên dưới cho mọi ô trong khung dữ liệu. Hàm này nhận giá trị riêng lẻ trong danh sách ở mỗi ô và loại bỏ tất cả các phiên bản của “\t”

import pandas as pd


pd.DataFrame(doc_result.body[1][1:]).\
                            applymap(lambda val: val[0].strip("\t"))


Làm cách nào để đọc docx bằng python?

Tiếp theo, hãy thay đổi tiêu đề cột thành những gì chúng ta thấy trong tệp Word (tệp này cũng được trả về cho chúng tôi trong doc_result. thân hình)

df.columns = [val[0].strip("\t") for val in doc_result.body[1][0]]


Làm cách nào để đọc docx bằng python?

Trích xuất hình ảnh

Chúng ta có thể trích xuất hình ảnh của tệp Word bằng thuộc tính images của đối tượng doc_result. doc_result. hình ảnh bao gồm một từ điển trong đó các khóa là tên của tệp hình ảnh (không được ghi tự động vào đĩa) và các giá trị tương ứng là các tệp hình ảnh ở định dạng nhị phân

type(doc_result.images) # dict

doc_result.images.keys() # dict_keys(['image1.png'])

Chúng ta có thể ghi hình ảnh định dạng nhị phân ra một tệp vật lý như thế này

for key,val in doc_result.images.items():
    f = open(key, "wb")
    f.write(val)
    f.close()

Ở trên, chúng tôi chỉ lặp qua các khóa (tên tệp hình ảnh) và giá trị (hình ảnh nhị phân) trong từ điển và viết từng tệp ra tệp. Trong trường hợp này, chúng tôi chỉ có một hình ảnh trong tài liệu, vì vậy chúng tôi chỉ lấy một hình ảnh được viết ra

thuộc tính khác

Kết quả docx2python có một số thuộc tính khác mà chúng tôi có thể sử dụng để trích xuất văn bản hoặc thông tin từ tệp. Ví dụ: nếu chúng tôi muốn lấy tất cả văn bản của tệp trong một chuỗi (tương tự như docx2txt), chúng tôi có thể chạy doc_result. chữ

import docx2txt

result = docx2txt.process("zen_of_python_with_image.docx", "C:/path/to/store/files")

0

Ngoài văn bản, chúng tôi cũng có thể lấy siêu dữ liệu về tệp bằng thuộc tính thuộc tính. Điều này trả về thông tin như người tạo tài liệu, ngày tạo/sửa đổi lần cuối và số lần sửa đổi

import docx2txt

result = docx2txt.process("zen_of_python_with_image.docx", "C:/path/to/store/files")

1

Nếu tài liệu bạn đang cạo có đầu trang và chân trang, bạn cũng có thể loại bỏ chúng như thế này (lưu ý phiên bản số ít của “đầu trang” và “chân trang”)

import docx2txt

result = docx2txt.process("zen_of_python_with_image.docx", "C:/path/to/store/files")

2

Chú thích cuối trang cũng có thể được trích xuất như thế này

import docx2txt

result = docx2txt.process("zen_of_python_with_image.docx", "C:/path/to/store/files")

3

Nhận HTML được trả về bằng docx2python

Chúng tôi cũng có thể chỉ định rằng chúng tôi muốn nhận một đối tượng HTML được trả về bằng phương thức docx2python hỗ trợ một số loại thẻ bao gồm phông chữ (kích thước và màu sắc), văn bản in nghiêng, in đậm và gạch chân. Chúng ta chỉ cần xác định tham số “html = True”. Trong ví dụ bên dưới, chúng ta thấy The Zen of Python được in đậm và gạch chân. Tương ứng với điều này, chúng ta có thể thấy phiên bản HTML của điều này trong ảnh chụp nhanh thứ hai bên dưới. Tính năng HTML hiện không hỗ trợ các thẻ liên quan đến bảng, vì vậy tôi khuyên bạn nên sử dụng phương pháp chúng tôi đã thực hiện ở trên nếu bạn đang tìm cách loại bỏ các bảng khỏi tài liệu Word

Làm cách nào để sử dụng docx trong python?

Python - Làm việc với. .
Bước đầu tiên là cài đặt mô-đun bên thứ ba này python-docx. Bạn có thể sử dụng pip “pip cài đặt python-docx”
Sau khi cài đặt, hãy nhập “docx” KHÔNG “python-docx”
Sử dụng “docx. Document” để bắt đầu làm việc với tài liệu từ

Làm cách nào để giải nén tệp docx trong python?

Bạn có thể sử dụng python-docx2txt được điều chỉnh từ python-docx nhưng cũng có thể trích xuất văn bản từ liên kết, đầu trang và chân trang. Nó cũng có thể trích xuất hình ảnh. đây là một đoạn mã hữu ích, nhưng nó không xuất các danh sách được đánh số.

Làm cách nào để chuyển đổi docx thành văn bản trong python?

Cách chuyển đổi DOCX sang TXT .
Cài đặt 'Aspose. Từ cho Python thông qua. MẠNG LƯỚI'
Thêm tham chiếu thư viện (nhập thư viện) vào dự án Python của bạn
Mở tệp DOCX nguồn bằng Python
Gọi phương thức 'save()', chuyển tên tệp đầu ra có phần mở rộng TXT
Nhận kết quả chuyển đổi DOCX dưới dạng TXT

Làm cách nào để đọc tệp docx?

Đây là ba phương pháp để mở một. tệp DOCX. .
mở một. Tệp DOCX bằng Microsoft Word trực tuyến. Nếu bạn có Microsoft Word trên máy Mac hoặc PC hoạt động trên hệ thống Windows, bạn có thể sử dụng phương pháp này để mở. tệp DOCX. .
mở một. Tệp DOCX bằng Google Tài liệu. .
mở một. Tệp DOCX bằng thiết bị di động