如何使用 python 获取嵌套 table 中的所有文本?
How to get all the text in a nested table using python?
我必须从 word 文档中提取嵌套 table 中的所有文本(tables inside table inside table)。我无法使用 python-docx 来完成,可能是我知识不够。
请推荐一些代码示例。
python-docx 看起来更像是一个 write/modify docx 库,您可能想尝试 PyPDF2 https://pythonhosted.org/PyPDF2/。但是 table 里面的 table 我不是很明白 我猜 table 嵌套在 word 文档中?如果是这种情况,只需使用 PyPDF2 阅读阅读并将您想要保留的单词放在 table 中。祝您阅读愉快。
您将需要某种递归。基本思路是:
def iter_paragraphs_of_tables(tables):
for table in tables:
for row in table.rows:
for cell in row.cells:
yield from cell.paragraphs
yield from iter_paragraphs_of_tables(cell.tables)
for paragraph in iter_paragraphs_of_tables(document.tables):
print(paragraph.text)
这是 Python3,如果您使用 Python2,则需要将 yield from
语句扩展为:
yield from cell.paragraphs
# --- becomes ---
for paragraph in cell.paragraphs:
yield paragraph
我必须从 word 文档中提取嵌套 table 中的所有文本(tables inside table inside table)。我无法使用 python-docx 来完成,可能是我知识不够。
请推荐一些代码示例。
python-docx 看起来更像是一个 write/modify docx 库,您可能想尝试 PyPDF2 https://pythonhosted.org/PyPDF2/。但是 table 里面的 table 我不是很明白 我猜 table 嵌套在 word 文档中?如果是这种情况,只需使用 PyPDF2 阅读阅读并将您想要保留的单词放在 table 中。祝您阅读愉快。
您将需要某种递归。基本思路是:
def iter_paragraphs_of_tables(tables):
for table in tables:
for row in table.rows:
for cell in row.cells:
yield from cell.paragraphs
yield from iter_paragraphs_of_tables(cell.tables)
for paragraph in iter_paragraphs_of_tables(document.tables):
print(paragraph.text)
这是 Python3,如果您使用 Python2,则需要将 yield from
语句扩展为:
yield from cell.paragraphs
# --- becomes ---
for paragraph in cell.paragraphs:
yield paragraph