Как исправить разбитый текст с помощью python docx, чтобы получить бесплатный текст для электронных книг? - PullRequest
0 голосов
/ 12 января 2020

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

Я очень плохо знаком с Python и программирую в целом, поэтому у меня нет никакого прогресса.

Каждая строка отделяется разрывом с Enter, поэтому каждая строка считается отдельный абзац на python.

По сути, необходимо удалить пробел и разрывы между строками, чтобы текст не разрывался при преобразовании в MOBI или EPUB.

Текст выглядит так:

Неформатирован: enter image description here

И должен выглядеть так:

Форматируется: enter image description here

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 12 января 2020

Я использовал библиотеку docx, которая не установлена ​​по умолчанию, вы можете использовать pip или conda:

pip install python-docx
conda install python-docx --channel conda-forge

После установки:

from docx import Document
doc = Document(r'path\to\file\pride_and_prejudice.docx')
all_text=[]
all_text_str=''

for para in doc.paragraphs:
    all_text.append(para.text)

all_text_str=all_text_str.join(all_text)

clean_text=all_text_str.replace('\n', '')   # Remove linebreaks
clean_text=clean_text.replace('  ', '')    # Remove even number of spaces (e.g. This usually eliminates non-spaces nicely, but you can tweak accordingly.

document = Document()
p = document.add_paragraph(clean_text)
document.save(r'path\to\file\pride_and_prejudice_clean.docx')
...