如何使用 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 文档。