如何使用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是一个Python包装器,用于把HTML文件转换为PDF文件。它通过在Python脚本内部调用wkhtmltopdf工具来实现这一目的。
假设我们有一个名为inputs.csv的CSV文件,其中包含以下数据。
inputs.csv
姓名, 年龄, 职业
约翰, 32, 工程师
简, 28, 教师
鲍勃, 45, 推销员
将CSV文件转换为HTML
现在让我们关注第一步,即将上述CSV文件作为输入并将其转换为HTML文件。
示例
考虑下面所示的代码。
main.py
# 导入pandas库
import pandas as pd
# 将CSV文件读入pandas数据帧中
df = pd.read_csv('inputs.csv')
# 将数据帧转换为HTML表格
html_table = df.to_html()
# 将HTML表格打印到控制台
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>姓名</th>
<th>年龄</th>
<th>职业</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>John</td>
<td>32</td>
<td>工程师</td>
</tr>
<tr>
<th>1</th>
<td>Jane</td>
<td>28</td>
<td>教师</td>
</tr>
<tr>
<th>2</th>
<td>Bob</td>
<td>45</td>
<td>销售员</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
安装成功后,我们可以运行下面的命令。
python3 main.py
当我们在终端中运行上述命令时,将在同一文件夹中创建一个名为outputs.pdf的新文件。
下面附有“输出.pdf”文件的截图。
结论
总之,使用Python将CSV文件转换为PDF可以使用pandas和pdfkit库进行操作。
首先,通过pandas将CSV文件转换为HTML表格,然后使用pdfkit库将HTML转换为PDF。使用这种方法,可以从CSV数据生成格式良好、可打印的PDF文档。