如何使用 Python 将 CSV 文件转换为 PDF 文件?


在当今世界,数据以空前速度生成,能够有效地管理和呈现数据至关重要。CSV 文件通常用于在系统之间存储和传输数据,但有时需要将这些数据转换为更易读的格式,例如 PDF。

Python 凭借其丰富的库,提供了一种简单高效的方法来将 CSV 文件转换为 PDF 文件。

在本文中,我们将探讨使用 Python 将 CSV 文件转换为 PDF 文件所涉及的步骤,并提供一个示例代码,您可以使用它来入门。无论您是数据分析师、科学家,还是只是想提高数据展示技能,本指南都将帮助您轻松地将 CSV 文件转换为 PDF 文件。

以下是我们将采取的将 Python 中的 CSV 文件转换为 PDF 文件的方法。

  • 使用 Pandas 将 CSV 文件转换为 HTML - Pandas 是一个功能强大的 Python 库,用于数据处理和分析。它提供了一种称为“read_csv”的方法,允许我们将 CSV 文件的内容读取到 Pandas 数据框中。然后,我们可以使用“to_html”方法将此数据框转换为 HTML 表格。

  • 使用 PDFkit Python API 将 HTML 文件转换为 PDF - PDFkit 是 wkhtmltopdf 命令行实用程序的 Python 包装器。它允许我们通过在 Python 脚本中调用 wkhtmltopdf 实用程序来将 HTML 文件转换为 PDF 文件。

假设我们有一个名为 inputs.csv 的 CSV 文件,其中包含以下数据。

inputs.csv

Name, Age, Occupation
John, 32, Engineer
Jane, 28, Teacher
Bob, 45, Salesperson

将 CSV 文件转换为 HTML

现在让我们专注于第一步,我们将以上 CSV 文件作为输入,然后将其转换为 HTML 文件。

示例

请考虑以下所示的代码。

main.py

# Import the pandas library
import pandas as pd

# Read the CSV file into a pandas dataframe
df = pd.read_csv('inputs.csv')

# Convert the dataframe to an HTML table
html_table = df.to_html()

# Print the HTML table to the console
print(html_table)

解释

  • import pandas as pd - 这将导入 Pandas 库,并为其赋予别名“pd”,以便在代码后面更容易使用。

  • df = pd.read_csv('inputs.csv') - 这将“inputs.csv”文件的内容读取到名为“df”的 Pandas 数据框中。假设文件的内容以逗号分隔,这是“read_csv”方法的默认分隔符。

  • html_table = df.to_html() - 这将 Pandas 数据框“df”转换为 HTML 表格,并将生成的 HTML 代码分配给变量“html_table”。默认情况下,此方法将数据框的索引列作为 HTML 表格的第一列。

  • print(html_table) - 这会将 HTML 表格打印到控制台。或者,您可以使用“open”函数的“write”方法将 HTML 表格保存到文件中。

要运行以上代码,我们首先需要在我们的机器上安装 Pandas 库,为此我们可以使用以下所示的命令。

输出

以上命令的输出如下所示。

<table border="1" class="dataframe">
   <thead>
      <tr style="text-align: right;">
         <th></th>
         <th>Name</th>
         <th>Age</th>
         <th>Occupation</th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <th>0</th>
         <td>John</td>
         <td>32</td>
         <td>Engineer</td>
      </tr>
      <tr>
         <th>1</th>
         <td>Jane</td>
         <td>28</td>
         <td>Teacher</td>
      </tr>
      <tr>
         <th>2</th>
         <td>Bob</td>
         <td>45</td>
         <td>Salesperson</td>
      </tr>
   </tbody>
</table>

将 HTML 转换为 PDF

为了能够在将 CSV 转换为 HTML 后从 CSV 创建 PDF,我们首先需要在我们的系统上安装wkhtmltopdf,为此我们可以访问以下 URL。

https://wkhtmltopdf.org/downloads.html

从以上 URL,我们可以在我们的系统上下载特定版本的 wkhtmltopdf 可执行文件。

安装完成后,我们可以运行以下所示的代码。

main.py

import pdfkit
import pandas as pd

df = pd.read_csv('inputs.csv')
html_table = df.to_html()

options = {    'page-size': 'Letter',
   'margin-top': '0mm',
   'margin-right': '0mm',
   'margin-bottom': '0mm',
   'margin-left': '0mm'
}

pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf')
pdfkit.from_string(html_table, 'outputs.pdf', options=options)

注意 - 请注意,在我的机器上,wkhtmltopdf 安装在路径:/usr/local/bin/wkhtmltopdf 上,因此我传递了该路径,您的路径可能有所不同。

要运行以上代码,我们首先需要在我们的机器上安装pdfkit 库,为此我们可以使用以下所示的命令。

pip3 install pdfkit

pdfkit 安装成功后,我们可以运行以下所示的命令

python3 main.py

在终端中运行以上命令后,将在同一文件夹中创建一个名为 outputs.pdf 的新文件。

以下是“outputs.pdf”文件的屏幕截图。

结论

总之,可以使用 Pandas 和 pdfkit 库将 CSV 文件转换为 PDF。

首先,使用 Pandas 将 CSV 文件转换为 HTML 表格,然后使用 pdfkit 库将 HTML 转换为 PDF。通过这种方法,可以轻松地从 CSV 数据生成格式良好且可打印的 PDF 文档。

更新于:2023 年 4 月 18 日

4K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告