Pedroski55
động từ chia
Bài đăng. 543
Chủ đề. 123
Đã tham gia. Tháng 7 năm 2017
Danh tiếng. 17
28-Aug-2022, 03. 32 AM [Bài đăng này đã được sửa đổi lần cuối. 28-08-2022, 10. 15 giờ chiều bởi Pedroski55. ]Tôi đã thực hiện một chức năng đơn giản để lấy văn bản từ. tập tin docx. Hoạt động tốt
Bây giờ tôi có một tệp chứa khung văn bản ở trên cùng, một ít văn bản và một bảng lớn
Tôi không thể lấy văn bản từ bảng hoặc khung văn bản. Bất kỳ lời khuyên về làm thế nào mà có thể đạt được?
import docx def getText[filename]: print[len[doc.paragraphs]] doc = docx.Document[filename] fullText = [] for para in doc.paragraphs: fullText.append[para.text] return '\n'.join[fullText] myfile = input['Enter the full path to the file you want .. '] text = getText[myfile]Điều này chỉ nhận được văn bản đứng tự do, không phải văn bản trong khung hoặc bảng
Hồi đáp
Tìm thấy
Hồi đáp
Pedroski55
động từ chia
Bài đăng. 543
Chủ đề. 123
Đã tham gia. Tháng 7 năm 2017
Danh tiếng. 17
28-08-2022, 10. 18 giờ chiềuTôi đã tìm thấy một mô-đun docx2txt khác mà mô-đun này nói cũng có thể lấy văn bản từ các bảng
Chưa có thời gian để thử
cách giải quyết. lưu lại. docx dưới dạng văn bản, sử dụng readlines[], sau đó lấy các dòng tôi muốn. Làm
Hồi đáp
Tìm thấy
Hồi đáp
trưởng khoa
Cân nặng giống như một con vịt
Bài đăng. 4.497
Chủ đề. 16
Đã tham gia. Tháng 2 năm 2020
Danh tiếng. 263
29-Aug-2022, 01. 20 AM [Bài đăng này đã được sửa đổi lần cuối. 29-08-2022, 01. 20 giờ sáng bởi deanhystad. ]Điều này tìm thấy các bảng trong một tài liệu và chuyển đổi chúng thành các khung dữ liệu
from docx import Document from docx.document import Document as _Document from docx.oxml.table import CT_Tbl from docx.table import _Cell, Table import pandas as pd def tables[parent]: if isinstance[parent, _Document]: element = parent.element.body elif isinstance[parent, _Cell]: element = parent._tc for child in element.iterchildren[]: if isinstance[child, CT_Tbl]: table = Table[child, parent] data = [[cell.text for cell in row.cells] for row in table.rows] yield pd.DataFrame[data[1:], columns=data[0]] for table in tables[Document['data.docx']]: print[table, "\n"]Tôi đã tạo một tài liệu từ có nhiều đoạn văn và hai bảng. Đầu ra từ việc chạy chương trình hiển thị chính xác hai bảng
Output:
A B C D
0 1 3 5 7
1 2 4 6 8
A B C
0 1 2 3
1 4 5 6
Pedroski55 thích bài này
Hồi đáp
Tìm thấy
Hồi đáp
Pedroski55
động từ chia
Bài đăng. 543
Chủ đề. 123
Đã tham gia. Tháng 7 năm 2017
Danh tiếng. 17
29-Aug-2022, 08. 30 giờ sángThanks
Tôi đã xem tài liệu docx nhưng không thấy thông tin đó
Hy vọng bạn không phiền nếu tôi sao chép mã của bạn
Hồi đáp
Tìm thấy
Hồi đáp
trưởng khoa
Cân nặng giống như một con vịt
Bài đăng. 4.497
Chủ đề. 16
Đã tham gia. Tháng 2 năm 2020
Danh tiếng. 263
29-08-2022, 03. 36 PM [Bài đăng này đã được sửa đổi lần cuối. 29-Aug-2022, 03. 36 CH bởi deanhystad. ]Thư viện docx không có nhiều tài liệu, tôi nghĩ cũng không nên. Nếu bạn muốn biết về định dạng tệp docx, hãy đọc tài liệu của Microsoft. Tôi đã sao chép rất nhiều ví dụ của mình từ một vài bài đăng trên web. Nghĩ rằng phải có một cách dễ dàng hơn để phân tích thông tin tài liệu, tôi đã viết một chương trình nhỏ để mở tài liệu, sau đó sử dụng Python tương tác để xem tất cả các phần tài liệu. Xin lưu ý rằng Tài liệu có một thuộc tính "bảng" là danh sách tất cả các bảng trong tài liệu. Điều đó chắc chắn làm cho mọi thứ dễ dàng
from docx import Document import pandas as pd for table in Document["test.docx"].tables: data = [[cell.text for cell in row.cells] for row in table.rows] print[pd.DataFrame[data[1:], columns=data[0]], "\n"]
Hồi đáp
Tìm thấy
Hồi đáp
Pedroski55
động từ chia
Bài đăng. 543
Chủ đề. 123
Đã tham gia. Tháng 7 năm 2017
Danh tiếng. 17
30-Aug-2022, 12. 57 giờ sángCảm ơn bạn về thông tin
Tôi luôn sử dụng Libre Office, trừ khi tôi cần tương tác với Python, thì tôi lưu mọi thứ ở định dạng Excel hoặc Word
Điều đáng chú ý là các tài liệu Excel hoặc Word nhỏ hơn so với các tài liệu Libre Office của chúng
Một lần, tôi đã mắc lỗi đánh máy khi lưu và lưu một tài liệu như thế này. kiểm tra. docx_
Làm điều đó, sau đó nhìn vào tệp, bạn có một tệp zip. mở cái đó
The document.xml contains the text, just need a parser to get the text from the
Xin chào tôi.
Bất kỳ nội dung nào khác phải ở trong đó, chỉ cần phân tích đúng các thẻ xml
Python có thể có trình phân tích cú pháp xml
Hồi đáp
Tìm thấy
Hồi đáp
Larz60+
aetate et sapientia
Bài đăng. 11.545
Chủ đề. 444
Đã tham gia. Tháng 9 năm 2016
Danh tiếng. 444
30-Aug-2022, 11. 34 giờ sángPedroski55 Đã viết. Python có thể có trình phân tích cú pháp xmlFYI
Python thực sự có một trình phân tích cú pháp XML
Tìm kiếm tài liệu python https. // tài liệu. con trăn. org/3/library/index. html để xem có gói dựng sẵn không
[bạn có thể sử dụng hộp tìm kiếm ở đầu trang này hoặc tìm kiếm chủ đề]
Đối với XML, điều này sẽ cung cấp cho bạn. https. // tài liệu. con trăn. org/3/thư viện/xml. html
Ngoài ra, nếu bạn đang tìm kiếm một gói python cụ thể theo chủ đề, hãy truy cập https. //pypi. org/ và tìm kiếm chủ đề đó
Hoặc là. thực hiện tìm kiếm google. Ví dụ. "gói python phổ biến nhất cho XML"
sau đó tìm kiếm tên gói PyPi [trên cùng cho XML là 'lxml'] tại https. //pypi. tổ chức/
thí dụ. từ dòng lệnh cho lxml. https. //pypi. tổ chức/tìm kiếm/?q=lxml
hoặc đơn giản là tìm kiếm chủ đề từ hộp tìm kiếm trang chủ pypi
sử dụng bộ lọc để trau dồi danh sách
Nếu có trang GitHub cho gói đã chọn, bạn có thể đến đó bằng cách nhấp vào Biểu tượng Trang chủ
nếu không có thể hướng dẫn bạn đóng gói trang chủ [đối với lxml thì link là. https. //lxml. de/ ]
Hồi đáp
Tìm thấy
Hồi đáp
Pedroski55
động từ chia
Bài đăng. 543
Chủ đề. 123
Đã tham gia. Tháng 7 năm 2017
Danh tiếng. 17
30-Aug-2022, 10. 52 giờ chiềuThanks
Tôi sẽ tìm kiếm một trình phân tích cú pháp xml phù hợp và cố gắng tạo công cụ khai thác docx của riêng mình
Hồi đáp
Tìm thấy
Hồi đáp