Python 如何将CSV文件转换为PDF文件
在今天的世界中,数据以前所未有的速度生成,能够有效地管理和展示数据至关重要。CSV文件通常用于存储和传输系统之间的数据,但有时需要将这些数据转换为更易读的格式,比如PDF。
Python凭借其丰富的库提供了一种简单高效的方法来将CSV文件转换为PDF文件。
在本文中,我们将探讨使用Python将CSV文件转换为PDF文件的步骤,并提供一个示例代码供您参考。无论您是数据分析师、科学家还是只是想提高数据展示技巧的人,本指南将帮助您轻松地将CSV文件转换为PDF文件。
以下是我们将使用的方法,用于将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后创建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”文件的截图。
结论
总之,使用Python将CSV文件转换成PDF文件可以通过使用pandas和pdfkit库来实现。
首先,使用pandas将CSV文件转换成HTML表格,然后使用pdfkit库将HTML转换成PDF。通过这种方法,可以轻松地从CSV数据生成格式漂亮、可打印的PDF文档。