Hướng dẫn can we read word file in python? - chúng ta có thể đọc tệp word trong python không?

Hướng dẫn can we read word file in python? - chúng ta có thể đọc tệp word trong python không?

Bài đăng này sẽ nói về cách đọc các tài liệu từ với Python. Chúng tôi sẽ bao gồm ba gói khác nhau - docx2txt, docx và yêu thích cá nhân của tôi: docx2python.docx2txt, docx, and my personal favorite: docx2python.

Gói DocX2TXT

Trước tiên, hãy nói về Docx2Textext. Đây là gói Python cho phép bạn cạo văn bản và hình ảnh từ các tài liệu từ. Ví dụ dưới đây đọc trong một tài liệu từ có chứa Zen of Python. Như bạn có thể thấy, một khi chúng tôi đã nhập DocX2TXT, tất cả những gì chúng ta cần là một dòng mã để đọc trong văn bản từ tài liệu từ. Chúng ta có thể đọc trong tài liệu bằng cách sử dụ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 sẽ được trả về trong một chuỗi.docx2txt, all we need is one line of code to read in the text from the Word Document. We can read in the document using a method in the package called process, which takes the name of the file as input. Regular text, listed items, hyperlink text, and table text will all be returned in a single string.

import docx2txt

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

Hướng dẫn can we read word file in python? - chúng ta có thể đọc tệp word trong python không?

Điều gì sẽ xảy ra nếu tệp có hình ảnh? Trong trường hợp đó, chúng tôi chỉ cần một tinh chỉnh nhỏ vào mã của chúng tôi. Khi chúng tôi chạy phương thức xử lý, chúng tôi có thể vượt qua một tham số bổ sung chỉ định tên của một thư mục đầu ra. Chạy docx2txt.process 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 vẫn 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

Hướng dẫn can we read word file in python? - chúng ta có thể đọc tệp word trong python không?

Docx2TXT cũng sẽ loại bỏ bất kỳ văn bản từ các bảng. Một lần nữa, điều này sẽ được trả lại thành một chuỗi duy nhất 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 hơn. Sau đó trong bài đăng này, chúng tôi sẽ nói về Docx2python, cho phép bạn cạo các bảng ở định dạng có cấu trúc hơn. will also scrape any text from tables. Again, this will be returned into a single string with any other text found in the document, which means this text can more difficult to parse. Later in this post we’ll talk about docx2python, which allows you to scrape tables in a more structured format.

Gói Docx

Mã nguồn đằng sau Docx2TXT được lấy từ mã trong gói DOCX, cũng có thể được sử dụng để cạo các tài liệu từ. Docx là một thư viện mạnh mẽ để thao tác và tạo tài liệu từ, nhưng cũng có thể (với một số hạn chế) đọc trong văn bản từ các tệp từ.docx2txt is derived from code in the docx package, which can also be used to scrape Word Documents. docx is a powerful library for manipulating and creating Word Documents, but can also (with some restrictions) read in text from Word files.

Trong ví dụ dưới đây, chúng tôi mở kết nối với tệp từ mẫu của chúng tôi bằng phương thức docx.document. Ở đây chúng tôi chỉ cần nhập tên của tệp chúng tôi muốn kết nối. Sau đó, chúng ta có thể xóa văn bản từ mỗi đoạn trong tệp bằng cách sử dụng danh sách hiểu được kết hợp với doc.paragraphs. Điều này sẽ bao gồm 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ể quét hình ảnh từ các tài liệu từ. 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 từ.docx2txt, docx, cannot scrape images from Word Documents. Also, docx will not scrape out hyperlinks and text in tables defined in the Word Document.

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]

Hướng dẫn can we read word file in python? - chúng ta có thể đọc tệp word trong python không?

Gói Docx2python

Docx2python là một gói khác mà chúng ta có thể sử dụng để cạo các tài liệu từ. 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 quét từ một tài liệu ở định dạng có cấu trúc hơn. Hãy để thử nghiệm tài liệu từ của chúng tôi với Docx2python. Chúng tôi sẽ thêm một bảng đơn giản trong tài liệu để chúng tôi cũng có thể trích xuất nó (xem bên dưới).docx2txt and docx. For example, it is able to return the text scraped from a document in a more structured format. Let’s test out our Word Document with docx2python. We’re going to add a simple table in the document so that we can extract that as well (see below).

Hướng dẫn can we read word file in python? - chúng ta có thể đọc tệp word trong python không?

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 tài liệu là đầu vào, chúng ta sẽ lấy lại một đối tượng với một số thuộc tính. contains a method with the same name. If we call this method with the document’s name as input, we get back an object with several attributes.

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.body, mỗi thành phần này sẽ được trả lại 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 Word với docx2python

Kết quả văn bản 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ả lại dưới dạng một 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 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 phụ riêng lẻ trong danh sách tương ứng hàng đó.

Hướng dẫn can we read word file in python? - chúng ta có thể đọc tệp word trong python không?

Chúng ta có thể chuyển đổi kết quả này thành một định dạng bảng bằng gấu trúc. Khung dữ liệu vẫn còn một chút lộn xộn - mỗi ô trong khung dữ liệu là một danh sách chứa một giá trị duy nhất. Giá trị này cũng có khá nhiều người (đại diện cho không gian tab).pandas. The data frame is still a little messy – each cell in the data frame is a list containing a single value. This value also has quite a few “\t”‘s (which represent tab spaces).

pd.DataFrame(doc_result.body[1][1:])

Hướng dẫn can we read word file in python? - chúng ta có thể đọc tệp word trong python không?

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

import pandas as pd


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


Hướng dẫn can we read word file in python? - chúng ta có thể đọc tệp word trong python không?

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

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


Hướng dẫn can we read word file in python? - chúng ta có thể đọc tệp word trong python không?

Trích xuất hình ảnh

Chúng ta có thể trích xuất các hình ảnh tệp từ bằng cách sử dụng thuộc tính hình ảnh của đối tượng Doc_Result của chúng tôi. doc_result.Images bao gồm một từ điển trong đó các khóa là tên của các tệp hình ảnh (không tự động ghi 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ể viết hình ảnh được định dạng nhị phân vào 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à các giá trị (hình ảnh nhị phân) trong từ điển và ghi từng khóa vào 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ỉ cần viết ra.

Các 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 ta muốn lấy tất cả các văn bản tệp trong một chuỗi (tương tự như docx2txt), chúng ta có thể chạy doc_result.text.docx2python result has several other attributes we can use to extract text or information from the file. For example, if we want to just get all of the file’s text in a single string (similar to docx2txt) we can run doc_result.text.

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 ta cũng có thể nhận được 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 được tạo / sửa đổi cuối cùng và số lượng 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 mà bạn có thể quét có các tiêu đề và chân trang, bạn cũng có thể loại bỏ những thứ đó như thế này (lưu ý phiên bản số ít của Tiêu đề Tiêu đề và Foot Footer):

import docx2txt

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

2

Chú thích 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 trở lại với 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 vài loại thẻ bao gồm phông chữ (kích thước và màu sắc), in nghiêng, in đậm và gạch chân. Chúng ta chỉ cần chỉ định tham số HT HTML = true. Trong ví dụ dưới đây, chúng ta thấy Zen of Python trong bản in táo bạo 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 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 mà chúng tôi đã trải qua ở trên nếu bạn đang tìm cách cạo các bảng từ các tài liệu từ.docx2python method that supports a few types of tags including font (size and color), italics, bold, and underline text. We just need to specify the parameter “html = True”. In the example below we see The Zen of Python in bold and underlined print. Corresponding to this, we can see the HTML version of this in the second snapshot below. The HTML feature does not currently support table-related tags, so I would recommend using the method we went through above if you’re looking to scrape tables from Word documents.

import docx2txt

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

4

Hướng dẫn can we read word file in python? - chúng ta có thể đọc tệp word trong python không?

Hướng dẫn can we read word file in python? - chúng ta có thể đọc tệp word trong python không?

Hy vọng bạn thích bài viết này! Vui lòng kiểm tra các bài đăng Python khác của tôi bên dưới hoặc bằng cách nhấp vào đây.

Làm cách nào để mở một tệp từ trong Python?

Khoa học dữ liệu thực tế bằng cách sử dụng Python để đọc một tài liệu từ mà chúng tôi nhận trợ giúp của mô -đun có tên Docx. Trước tiên chúng tôi cài đặt DOCX như hình dưới đây. Sau đó viết mộ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 các đ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.To read a word document we take help of the module named docx. We first install docx as shown below. Then write a program to use the different functions in docx module to read the entire file by paragraphs. We use the below command to get the docx module into our environment.

Làm cách nào để đọc một tập tin docx trong Python?

Đọc tài liệu Word Tệp tài liệu trong Python, gọi Docx. Tài liệu (), và vượt qua bản demo tên tệp. DOCX. Điều này sẽ trả về một đối tượng tài liệu, có thuộc tính đoạn văn là danh sách các đối tượng đoạn văn.call docx. Document() , and pass the filename demo. docx. This will return a Document object, which has a paragraphs attribute that is a list of Paragraph objects.

Làm thế nào để bạn đọc một tập tin trong Python?

Tệp Python mở..
❮ Trước Sau ❯.
f = open ("demofile.txt", "r") in (f.Read ()) ....
Mở một tập tin trên một vị trí khác: ....
Trả về 5 ký tự đầu tiên của tệp: ....
Đọc một dòng của tệp: ....
Đọc hai dòng của tập tin: ....
Vòng lặp qua dòng tệp từng dòng: ....
Đóng tệp khi bạn kết thúc với nó:.

Python có thể viết một tài liệu từ không?

Có một số cách để tạo một tài liệu từ từ các ngôn ngữ lập trình, bao gồm R Markdown và gói Cán bộ với thư viện R và Python-Docx trong Python.the python-docx library in Python.