如何解决Python如何将 MOBI 文件转换为文本或 EPUB 文件
我在将 MOBI 文件转换为 Python 文本时遇到问题。
我发现这个库 - https://github.com/iscc/mobi 可以将 MOBI 转换为 EPUB,然后我发现 ebooklib 库可以很好地将 EPUB 文件转换为文本。
问题是似乎只有 ebooklib 可以正常工作。如果我给它本机 EPUB 文件,一切正常。但是如果我尝试从 mobi 库传递给它文件路径,那么我会收到一堆没有多大意义的错误。
我不知道究竟是什么导致了这种情况。也许我的 MOBI 文件以某种方式加密了? (它们是我几个月前购买的 Humble Bundle 的原创书籍)。但是 mobi 库并没有就此抛出任何错误。
或者我不能按原样传递由 mobi 库生成的文件路径?也许我应该以某种方式保存这个文件,将它移动到其他文件夹,然后它才会被 ebooklib“读取”?
我的代码如下:
import mobi
import ebooklib
from ebooklib import epub
tempdir,filepath = mobi.extract("book.mobi")
# This throws error:
book = epub.read_epub(filepath)
# Native,normal epub file is working ok:
book = epub.read_epub("book.epub")
在我看来,错误并不能说明什么:
Traceback (most recent call last):
File "/ebooklib/utils.py",line 35,in parse_string
tree = etree.parse(io.BytesIO(s.encode('utf-8')))
AttributeError: 'bytes' object has no attribute 'encode'
解决方法
您可以将其另存为 html 文件
pip install mobi
比
import mobi
filepath="./example.mobi"
folder="./"
!mobiunpack -r filepath folder
所有可用选项列表here
或者在这里我提出另一种方法:
pip install mobi
pip install html2text
import mobi
import html2text
filename="test.mobi"
tempdir,filepath = mobi.extract(filename)
file = open(filepath,"r")
content=file.read()
print(html2text.html2text(content))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。