Я использую python-docx для управления текстовыми документами. Вот то, что я в настоящее время необходимо изменить текст в обычных пунктах:Python Combine For-Loops
doc = Document('idk.docx')
for paragraph in doc.paragraphs:
if "oldtext1" in paragraph.text:
paragraph.replace("oldtext1","Something")
if "oldtext2" in paragraph.text:
paragraph.replace("oldtext2","Somethingelse")
Если я хочу, чтобы изменить текст в таблице, мне нужно сделать следующее
tables = doc.tables
for table in tables:
for row in table.rows:
for cell in row.cells:
for paragraph in cell.paragraphs:
if "oldtext1" in paragraph.text:
paragraph.replace("oldtext1","Something")
if "oldtext2" in paragraph.text:
paragraph.replace("oldtext2","Somethingelse")
код работает отлично и текст заменен, но проблема в том, что я пытаюсь заменить ВСЕ экземпляры текста в документе, и я не хочу иметь 2 отдельных цикла (1 для обычного текста в параграфах и другой для текста в таблицах)
Is есть простой способ комбинировать эти циклы, поэтому мне не нужно иметь ame if-statements в 2 разных циклах?
Вы зацикливание над разными вещами, так что я не вижу ничего плохого в этом коде –
@ cricket_007 Я согласен, хотя я бы рекомендовал положить обработку в-пункт в чтобы избежать повторения кода – DaveBensonPhillips
@HumphreyTriscuit - я собирался сказать это, но это личное предпочтение, и я не был уверен, что оба блока будут одинаковыми. –