课程
PDF 文档
PDF 是“可移植文档格式”,可包含文本、图像、图表等,与纯文本文件不同。其文件扩展名为“.pdf”,由 Adobe 发明。这类文件不依赖任何平台,如软件、硬件或操作系统。
安装包的步骤:
-
您需要安装名为 "pypdf2" 的包,用于处理以“.pdf”为扩展名的文件。

-
您可以看到 'pypdf2' 包已安装,如下所示。

读取 PDF 文档并提取数据
您将只从 PDF 文件中提取文本,因为 PyPDF2 在提取富媒体内容方面有限制。徽标、图片等无法通过它提取——请先下载以下 PDF 文件以配合本教程。
下载 PDF 文件

上述代码中的 'import' 语句用于引入 PyPDF2 模块。您需要使用 'open('pdfFileName' , 'openingMode')',其中 'pdfFilename' 为 'test.pdf','openingMode' 为 'rb',即以二进制只读方式打开。

PyPDF2 提供 'PdfFileReader' 方法,它接收新创建的对象 'pdfFileObject'。现在您可以访问 'pdfFileObject' 的 'numPages' 属性,以获取页面总数。
上述输出为 1。因为您可以看到该 PDF 文件只有一页。
您可以在 pdfReaderObject 中使用 'getPage(0)' 方法获取第一页。然后将结果存储在 'firstPageObject' 中,再使用 'extractText()' 方法打印该页中的所有文本。
上述代码返回了 PDF 文件中的所有文本。但终端中不会显示图像,pyPDF2 无法获取图像。
将多个 PDF 合并为一个 PDF
您将把两个不同的 PDF 文件合并为一个。旧的 PDF 文件是之前使用的那个,而新的 PDF 文件可通过以下链接下载:
新 PDF 文件。

您将从 PyPDF2 包中导入 PdfFileMerger 模块,用于合并 PDF 文件。指定 'path' 表示文件所在文件夹的路径。同时,将待合并的 PDF 文件以列表形式放入 'pdf_files'。
您可以看到使用 'PdfFileMerger' 创建了合并器对象。对列表中的每个文件进行循环,通过向 'append' 方法传入路径和文件来完成合并。最后,使用 'merger.write()' 生成最终输出,得到包含合并内容的新 PDF 文件名。
上图显示了 'merged.pdf',其内容由 'test.pdf' 和 'test-1.pdf' 合并而成。
Word 文档
Word 文档的文件名以“.docx”为扩展名。与纯文本文件不同,这类文档不仅包含文本,还属于富文本,包含文档的不同结构及其关联的大小、对齐、颜色、图片、字体等。
要处理 Word 文档,您需要相关应用。Windows 和 Mac 操作系统上常用的是 Microsoft Word,但它需要付费订阅。不过,也有免费的替代方案,例如 Linux 上预装的 "LibreOffice"。这些应用也可用于 Windows 和 Mac 操作系统。本教程将在 Windows 操作系统中使用 Microsoft Word。
安装包的步骤
-
您需要安装名为 "python-docx" 的包,用于处理以“.docx”为扩展名的 Word 文档。

-
您可以看到 'python-docx' 包已安装,如下所示。

您可以在 Python 提供的交互式 Shell 中跟着编写代码,但更推荐使用文本编辑器。因此,本教程的编码部分使用 Sublime Text。
编写 Word 文档

如上所示,第一行从 'docx' 包中导入了 'document' 模块。第二行代码通过 Document 对象创建了一个新的 Word 文档。使用 'document.save()' 将文件保存为 'first.docx'。
添加标题

上述代码中的 'Document()' 打开一个新文件,'document.save('addHeader.docx')' 用于创建一个新编辑的 docx 文件。您可以通过 'add_heading('text,' level=number)' 方法添加标题,其中传入标题文本,并设置标题级别,范围为 0 到 4。

上述代码将输出新创建的 'addedHeader.docx' 文件,其中 level 0 会生成带有下划横线的标题,而 level 1 为主标题。类似地,其余级别为子标题,字体大小依次递减。
添加段落

上述代码中的 'Document()' 会打开一个新的文档文件,'document.save('addParagraph.docx')' 用于创建一个新编辑的 docx 文件。您可以通过 'add_paragraph('text,' style='required_style')' 方法添加段落,该方法接收文本,同时 'style' 为可选参数,可使用 'List Number' 和 'List Bullet' 等样式。

上述代码将输出新创建的 'addedParagraph.docx' 文件,第一行是一个简单段落。随后是一个标题,下面包含一个有序列表,含有编号 1 和 2 的条目。再下面是另一个标题,其下是一个包含两项内容的无序项目符号列表。
添加图片

上述代码中的 'Document()' 会创建一个新的文档文件,'document.save('addPicture.docx')' 用于创建一个新编辑的 docx 文件。您可以使用 'add_picture()' 添加图片,第一个参数 'cat-1.jpeg' 为猫的图片路径。宽度和高度为可选参数,默认是 '72 dp',但在此我们使用 'Inches'。

上述代码将输出新创建的 'addedPicture.docx' 文件,其中包含一张猫的图片,宽高均为 1.25 英寸。
读取 Word 文档
现在您将通过 Python 读取一个示例 Word 文档,可在此处获取:
下载示例。

代码第一行从 'docx' 模块中导入 Document,用于传入所需的文档文件并创建对象。'obtainText' 是一个函数,它接收文件 'fullText.docx'。通过 'document.paragraphs' 访问每个段落并逐一循环,使用 'append' 方法插入到一个空列表中。最后,函数返回以换行结尾的段落列表。

上述输出为不带任何样式、颜色等的纯文本,并非富文本文档。
恭喜
恭喜,您已完成本教程的学习。
如果您想进一步学习如何在 Python 中导入数据,请试试 DataCamp 的 Introduction to Importing Data in Python 课程。
查看我们的 Python 数据结构教程。
您还可以参考以下资源,深入了解特定主题。
参考:
Automate Boring Stuff With Python: Working with Word Documents