Tôi muốn trích xuất văn bản từ một bảng trong các tệp .docx bằng Python để phân tích thêm. Tôi đang sử dụng mã sau:
document = Document[path_to_your_docx]
tables = document.tables
for table in tables:
for row in table.rows:
for cell in row.cells:
for paragraph in cell.paragraphs:
print[paragraph.text]
Nhưng có vẻ như có một "bảng" khác trong ô của bảng này, vì vậy tôi không thể trích xuất phần này [hiển thị trong hình ảnh đính kèm]. Khi tôi sử dụng mã ở trên, tôi không thể tìm nạp văn bản "Có/Không".
Tôi cũng đã thử lặp lại thông qua các ô như thể trong một bảng, nhưng tôi gặp lỗi mà ô không có thuộc tính bảng. Bất kỳ lời khuyên?
Cái bàn trông như thế này
Mã sau khi tạo bảng
Thanks.
Đã hỏi ngày 5 tháng 3 năm 2018 lúc 12:17Mar 5, 2018 at 12:17Mar 5, 2018 at 12:17
Juanmanjuanmanjuanmanjuanman
1371 Huy hiệu bạc9 Huy hiệu đồng1 silver badge9 bronze badges1 silver badge9 bronze badges
1
Tôi có một cách giải quyết cho vấn đề này. Thay vì sử dụng thư viện python-docx để trích xuất văn bản từ tệp Docx, tôi đã sử dụng thư viện docx2txt [trích xuất tất cả văn bản] và sau đó tôi chỉ cần tìm từ cụ thể trong chuỗi.python-docx to extract the text from the docx file, I used the library docx2txt [extract all the text] and then I just needed to find the specific word in the string.python-docx to extract the text from the docx file, I used the library docx2txt [extract all the text] and then I just needed to find the specific word in the string.
text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
Và điều này cung cấp cho tôi "có" hoặc "không" từ cột2, cho mỗi giá trị trên cột1 [trong ví dụ trên, nó đưa ra có].Yes].Yes].
Đã trả lời ngày 27 tháng 3 năm 2018 lúc 13:02Mar 27, 2018 at 13:02Mar 27, 2018 at 13:02
Juanmanjuanmanjuanmanjuanman
1371 Huy hiệu bạc9 Huy hiệu đồng1 silver badge9 bronze badges1 silver badge9 bronze badges
1
Tôi có một cách giải quyết cho vấn đề này. Thay vì sử dụng thư viện python-docx để trích xuất văn bản từ tệp Docx, tôi đã sử dụng thư viện docx2txt [trích xuất tất cả văn bản] và sau đó tôi chỉ cần tìm từ cụ thể trong chuỗi.python-docx to extract the text from the docx file, I used the library docx2txt [extract all the text] and then I just needed to find the specific word in the string.
Và điều này cung cấp cho tôi "có" hoặc "không" từ cột2, cho mỗi giá trị trên cột1 [trong ví dụ trên, nó đưa ra có].Yes].
Đã trả lời ngày 27 tháng 3 năm 2018 lúc 13:02Mar 27, 2018 at 13:02
Trích xuất các tiêu đề, chân trang, văn bản, chú thích, chú thích, thuộc tính và hình ảnh cho một đối tượng Python.:
- Tài liệu đầy đủ
- Mã này là sự mở rộng/co thắt của Python-DOCX2TXT [Bản quyền [C] 2015 Ankush Shah]. Mã ban đầu chủ yếu là biến mất, nhưng một số xương vẫn có thể ở đây.
- Các tính năng được chia sẻ::
additions:
- Trích xuất văn bản từ các tệp docx
- Trích xuất hình ảnh từ các tệp docx
- Không có sự phụ thuộc [docx2python yêu cầu kiểm tra pytest]
- Trích xuất chú thích và chú thích
- Chuyển đổi đạn và danh sách được đánh số thành ASCII với thụt
- Chuyển đổi siêu liên kết thành
2text = docx2txt.process[file] q = "Example1" result = text[text.find[q]+len[q]:].split[][0]
- Giữ lại một số cấu trúc của tệp gốc [bên dưới]
- Trích xuất các thuộc tính tài liệu [người tạo, LastModifiedBy, v.v.]
- Chèn trình giữ chỗ hình ảnh trong văn bản [
3]text = docx2txt.process[file] q = "Example1" result = text[text.find[q]+len[q]:].split[][0]
- chèn chú thích văn bản đơn giản và tham chiếu cuối cùng trong văn bản [
4]text = docx2txt.process[file] q = "Example1" result = text[text.find[q]+len[q]:].split[][0]
subtractions:
- .
- Trích xuất các lựa chọn người dùng từ hộp kiểm và menu thả xuống
Bảo hiểm thử nghiệm đầy đủ và tài liệu cho các nhà phát triển
pip install docx2python
Không có giao diện dòng lệnh
from docx2python import docx2python # extract docx content docx2python['path/to/file.docx'] # extract docx content, write images to image_directory docx2python['path/to/file.docx', 'path/to/image_directory'] # extract docx content, ignore images docx2python['path/to/file.docx', extract_image=False] # extract docx content with basic font styles converted to html docx2python['path/to/file.docx', html=True]
sẽ chỉ hoạt động với Python 3,4+
- Cài đặt
- Sử dụng
- Lưu ý trên tính năng HTML:
- Kích thước phông chữ, màu phông chữ, in đậm, nghiêng và gạch chân được hỗ trợ
Các siêu liên kết sẽ luôn được xuất khẩu dưới dạng HTML [text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
2], ngay cả khi text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
6, bởi vì tôi không thể nghĩ ra một đại diện liên tục hơn.
text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
Mỗi thẻ mở trong một đoạn sẽ được đóng trong đoạn đó [và, khi thích hợp, mở lại trong đoạn tiếp theo]. Nếu hai đoạn sau được in đậm, chúng sẽ được trả lại là
text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
7, text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
8. Đây là cố ý để làm cho mỗi đoạn văn của riêng mình.Nếu bạn chỉ định text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
9, pip install docx2python0 và
pip install docx2python1 trong văn bản tài liệu của bạn sẽ được mã hóa là
pip install docx2python2 và
pip install docx2python3
Giá trị trả về - contents of the docx headers in the return format described herein
Hàm - contents of the docx footers in the return format described herein
pip install docx2python
4 Trả về một đối tượng với một số thuộc tính. - contents of the docx in the return format described herein
Tiêu đề - Nội dung của các tiêu đề DOCX ở định dạng trả về được mô tả trong tài liệu này - contents of the docx headers in the return format described herein - contents of the docx in the return format described herein
Footer - Nội dung của Footers Docx ở định dạng trở lại được mô tả trong tài liệu này - contents of the docx footers in the return format described herein - contents of the docx in the return format described herein
Cơ thể - Nội dung của Docx ở định dạng trở lại được mô tả trong tài liệu này - contents of the docx in the return format described herein - header + body + footer [read only]
Chú thích - Nội dung của DOCX ở định dạng trở lại được mô tả trong tài liệu này - contents of the docx in the return format described herein
EndNotes - Nội dung của DOCX ở định dạng trả về được mô tả trong tài liệu này - contents of the docx in the return format described herein5 - all docx text as one string, similar to what you'd get frompip install docx2python5
Tài liệu - Tiêu đề + Body + Footer [Chỉ đọc] - header + body + footer [read only]
Văn bản - Tất cả văn bản docx là một chuỗi, tương tự như những gì bạn nhận được từ 6] - docx property names mapped to values [e.g.,pip install docx2python6]
75 - all docx text as one string, similar to what you'd get from - image names mapped to images in binary format. Write to filesystem withtext = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
1Thuộc tính - Tên thuộc tính docx được ánh xạ tới các giá trị [ví dụ:
text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
76] - docx property names mapped to values [e.g., pip install docx2python7 sẽ là một đoạn văn].
Nếu tài liệu của bạn không có bảng, đầu ra sẽ xuất hiện dưới dạng một bảng có tất cả nội dung trong một ô:
text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
3Các ô bảng sẽ xuất hiện dưới dạng tế bào bảng. Văn bản bên ngoài bảng sẽ xuất hiện dưới dạng ô bảng.
Để bảo tồn độ sâu chẵn [văn bản luôn ở độ sâu 4], các bảng lồng nhau sẽ xuất hiện dưới dạng các bảng cấp cao nhất, mới. Điều này rõ ràng hơn với một ví dụ:
text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
4trở thành ...
text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
5Điều này đảm bảo văn bản xuất hiện
- chỉ một lần
- Theo thứ tự nó xuất hiện trong tài liệu
- Luôn luôn ở độ sâu bốn [tức là,
pip install docx2python
8 sẽ là một chuỗi].
Làm việc với đầu ra
Gói này cung cấp một số chức năng trợ giúp tài liệu trong mô -đun
pip install docx2python9. Dưới đây là một vài công thức nấu ăn có thể với các chức năng này:
text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
8text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
9text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
0text = docx2txt.process[file]
q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
1Xem các chức năng trợ giúp.
Một số bản in đẹp về hộp kiểm:
MS Word có các hộp kiểm có thể được kiểm tra bất cứ lúc nào và các hộp khác chỉ có thể được kiểm tra khi biểu mẫu bị khóa. Bản in trước như.
from docx2python import docx2python # extract docx content docx2python['path/to/file.docx'] # extract docx content, write images to image_directory docx2python['path/to/file.docx', 'path/to/image_directory'] # extract docx content, ignore images docx2python['path/to/file.docx', extract_image=False] # extract docx content with basic font styles converted to html docx2python['path/to/file.docx', html=True]0 [Hộp kiểm mở] hoặc
from docx2python import docx2python # extract docx content docx2python['path/to/file.docx'] # extract docx content, write images to image_directory docx2python['path/to/file.docx', 'path/to/image_directory'] # extract docx content, ignore images docx2python['path/to/file.docx', extract_image=False] # extract docx content with basic font styles converted to html docx2python['path/to/file.docx', html=True]1 [hộp kiểm chéo]. Mà mô -đun này, sau này cũng sẽ như vậy. Tôi đã cho các hộp kiểm một giá trị cứu trợ là
from docx2python import docx2python # extract docx content docx2python['path/to/file.docx'] # extract docx content, write images to image_directory docx2python['path/to/file.docx', 'path/to/image_directory'] # extract docx content, ignore images docx2python['path/to/file.docx', extract_image=False] # extract docx content with basic font styles converted to html docx2python['path/to/file.docx', html=True]2 nếu XML không giống như tôi mong đợi, bởi vì tôi không có các tệp kiểm tra vài nghìn với các hộp kiểm [như tôi đã làm với hầu hết các yếu tố hình thức khác]. Hộp kiểm nên hoạt động, nhưng vui lòng cho tôi biết nếu bạn gặp bất kỳ điều gì không.