Hướng dẫn python-docx table location - vị trí bảng python-docx

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
    text = docx2txt.process[file]
    
    q = "Example1"
    result = text[text.find[q]+len[q]:].split[][0]
    
    2
  • 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 [
    text = docx2txt.process[file]
    
    q = "Example1"
    result = text[text.find[q]+len[q]:].split[][0]
    
    3]
  • 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 [
    text = docx2txt.process[file]
    
    q = "Example1"
    result = text[text.find[q]+len[q]:].split[][0]
    
    4]

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.

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 docx2python
0 và
pip install docx2python
1 trong văn bản tài liệu của bạn sẽ được mã hóa là
pip install docx2python
2 và
pip install docx2python
3

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 from

pip install docx2python
5

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 docx2python
6]

text = docx2txt.process[file]

q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
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 with

text = docx2txt.process[file]

q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
1

Thuộ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 docx2python
7 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]
3

Cá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]
4

trở 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

  1. chỉ một lần
  2. Theo thứ tự nó xuất hiện trong tài liệu
  3. 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 docx2python
9. 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]
8
text = docx2txt.process[file]

q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
9
text = docx2txt.process[file]

q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
0
text = docx2txt.process[file]

q = "Example1"
result = text[text.find[q]+len[q]:].split[][0]
1

Xem 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.

Bài Viết Liên Quan

Chủ Đề