Использование Python Docx для удаления пустых строк

Я использую Python docx удалить пустые строки из документов, содержащих текст и изображения. С использованием paragraph.clear() а также paragraph.run.clear() работает до некоторой точки, но в выводимом файле все еще есть пустые строки, в которых только метка абзаца показана в Word. Есть ли способ прямого поиска меток абзаца? Или есть лучший способ очистки линий?

# code snippet
for paragraphs in document.paragraphs:
    if paragraphs.text == "\n":
        paragraphs.clear()

3 ответа

Пустые строки отмечены не "\n", а пустой строкой "".

Кроме того, clear() удаляет текст, но не сам абзац.

Попробуй проверить len(paragraph.text)==0 за каждый абзац.

Это удалило все пустые строки для меня в моем файле документа.

      for paragraph in doc.paragraphs:
   if len(paragraph.text) == 0:
      p = paragraph._element
      p.getparent().remove(p)
      p._p = p._element = None

С помощью len(paragraph.text)==1 помогает в отличие от использования len(paragraph.text)==0поскольку новая строка также является символом. Я просто хотел скопировать строки, кроме пустых, в новый документ, чтобы он дал мне результат. Когда я использовалparagraph.text=paragraph.strip('\n') стиль шрифта, полужирный, подчеркнутый и курсив был удален. Поэтому проверка длины каждого абзаца и очистка этого абзаца помогает.

Другие вопросы по тегам