Python: чтение документа Word по порядку - PullRequest
0 голосов
/ 21 апреля 2020

Первый раз python пользователь здесь. Я пытаюсь go через документ Word, содержащий как параграфы и таблицы. Я выяснил, как go пройти через все параграфы в документе и во всех таблицах документа с кодом ниже:

for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
             print(str(paragraph.text))

for i in doc.paragraphs:
    splitstring = i.text.split(" ", 1)
    print(splitstring[0])

Но я пытаюсь найти способ go через документ в порядке, как любой, кто его читает. Так что, если бы у нас был документ, который содержал:

Paragraph 1
Paragraph 2
Table 1
Paragraph 3
Table 2
Paragraph 4

, он читал бы их в таком порядке. Причина, по которой я хочу это сделать, заключается в том, что в зависимости от того, какой абзац следует за таблицей, я хочу выполнять над ним различные операции.

1 Ответ

0 голосов
/ 21 апреля 2020

Это зависит от того, есть ли у вас доступ к информации о заказе в вашем коде.

В опубликованном коде у вас есть два цикла:
Один для печати содержимого каждой таблицы.
Один для печати содержимого каждого абзаца.

Эти циклы выполняются последовательно, но вы бы хотели переплетать их функциональность, примерно так:

def print_table(table):
    for row in table.rows:
        for cell in row.cells:
            print(str(cell.text))

def print_paragraph(paragraph): 
    splitstring = paragraph.text.split(" ", 1)
    print(splitstring[0])

# Main loop:
for entry in doc.entries: 

   if isinstance(entry, doc.paragraph):
       print_paragraph(entry)
   else:
       print_table(entry)

Таким образом, вам нужно знать, есть ли у вас доступ к порядку данные.
В приведенном выше гипотетическом коде структура данных doc.entries хранит порядок таблицы / абзаца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...