f = open('file.txt')
print f.read()
那是非常直接的不是吗?这是有效的,因为python知道如何读取和写入.txt
文件。这些格式如何运作?我希望构建一个python程序来阅读至少主要格式的文档(包括pdf),电子表格和演示文稿。
现在请不要告诉我,“继续使用PDFMiner!”; “使用IronPython阅读.doc
!”。
我想了解自己,格式魔术是如何发生的。我想知道格式是如何工作的,这样我就可以构建自己的“任何格式阅读器”。我不想要解决方案来阅读各种格式。我想知道它背后的理论。
非常感谢任何指向此类资源的链接或有关阅读多种格式的帮助。
- 谢谢你
答案 0 :(得分:7)
不,你完全误解了你的代码在做什么。 Python不“知道”如何读取.txt文件,因为这里没有“格式”。它只是打开一个普通文件并打印出它在那里找到的字节。
像PDF或DOC这样的东西完全不同。字节本身并不意味着什么:它们是相关应用程序理解的文件格式的表示。为了以理解它们包含的内容的方式“读取”它们,您需要构建一个与原始应用程序完全相同的解析器。这就是你所引用的那些库(尽管IronPython是.NET中的Python实现,与读取doc文件无关)。
答案 1 :(得分:3)
读取.txt
文件绝对没有魔法 - 它只是ASCII字节,打开和读取文件就是这样:读取字节。这是您可能找到的最简单的文件格式(因为没有格式)。 PDF是简单的纯文本可口可乐对蒸馏水的意义。
然而,PDF使用的格式非常复杂;阅读PDF文件只会让Python将其视为.txt
文件。
所以我很遗憾地向您提供您不喜欢听到的旧回复:请继续使用PDFMiner,或阅读其源代码以了解他们如何阅读和解析PDF文件:)(或阅读PDF spec正如devnull指出的那样)
答案 2 :(得分:2)
您需要查找要处理的每种格式的规范,this是ePub的规范,例如,它有点宽泛但你明白了,那么你需要弄清楚如何你想要处理它。