可以将这些冗长的代码更改为递归函数吗?

Possible to change these lengthy codes to a recursion function?

我正在尝试从 .docx 文档中的 tables(其中也包括嵌套的 tables)获取数据。但是我当前的代码看起来像:

def pctnt():
    tables = doc.tables
    for table in tables:
        for row in table.rows:
            for cell in row.cells:
                for paragraph in cell.paragraphs:
                    print(paragraph.text)
                for table in cell.tables:
                    for row in table.rows:
                        for cell in row.cells:
                            for paragraph in cell.paragraphs:
                                print(paragraph.text)
                            for table in cell.tables:
                                for row in table.rows:
                                    for cell in row.cells:
                                        for paragraph in cell.paragraphs:
                                            print(paragraph.text)

它适用于我当前的 .docx,因为我知道会有多少嵌套 table。

但是,当我有其他文档进入时,情况就不会这样了,因此我需要一种方法来从嵌套的 table 中检索数据,无论文档中有多少。

NEW QUESTION based on the solution given by @Boendal

我是否可以将数据打印到列表中,以便我可以使用 pandas 打印美化的 table 或搜索特定的 table 单元格?

根据您提供的描述和您的代码片段,这应该可行:

def print_paragraphs(doc):
    for table in doc.tables:
        for row in table.row:
            for cell in row.cells:
                for paragraph in cell.paragraphs:
                    print(paragraph.text)
                print_paragraphs(cell)

print_paragraphs(doc)