Использование 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')
стиль шрифта, полужирный, подчеркнутый и курсив был удален. Поэтому проверка длины каждого абзаца и очистка этого абзаца помогает.