python - 如何使用 python docx 修复分解的文本以获得电子书的免费文本?
问题描述
我正在尝试将我在网上找到的免费电子书编辑成易于阅读的 Kindle 文本,带有标题和完整的段落。
我对 Python 和一般编码非常陌生,所以我真的没有任何进展。
每行都用 Enter 分隔,因此每行都被 python 视为一个单独的段落。
基本上需要做的是删除行之间的空格和中断,以便文本在转换为 MOBI 或 EPUB 时不会中断。
文本如下所示:
应该是这样的:
欢迎任何帮助!
解决方案
我使用了默认不安装的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')
推荐阅读
- selenium - 在我的量角器测试中启动 Internet Explorer 会话时遇到问题
- java - 如何捕获詹金斯构建原因?由 GitLab 触发
- python - 使用美丽汤进行屏幕抓取
- c# - 使用 CipherMode.ECB 进行 AES 加密
- python - 计算从特定变量到另一个变量的转换
- php - 字母排序将较短的字符串置于错误的较长字符串之后
- curl - 为什么我的 curl 命令在 plurasight api 上收到错误请求
- http - 从flutter应用程序到firebase的简单发布请求的最佳方法是什么?
- selenium - Selenium Grid 节点可以运行的最大浏览器数量是多少
- python - 找不到如何正确实施 django-paypal