首页 > 解决方案 > 如何使用 python docx 修复分解的文本以获得电子书的免费文本?

问题描述

我正在尝试将我在网上找到的免费电子书编辑成易于阅读的 Kindle 文本,带有标题和完整的段落。

我对 Python 和一般编码非常陌生,所以我真的没有任何进展。

每行都用 Enter 分隔,因此每行都被 python 视为一个单独的段落。

基本上需要做的是删除行之间的空格和中断,以便文本在转换为 MOBI 或 EPUB 时不会中断。

文本如下所示:

未格式化: 在此处输入图像描述

应该是这样的:

格式化: 在此处输入图像描述

欢迎任何帮助!

标签: pythonms-wordpython-docx

解决方案


我使用了默认不安装的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')

推荐阅读