使用html模板格式化csv文件数据

lam*_*cro 5 html ruby python csv formatting

我有一个csv文件,数据和一个HTML文件,模板.

我想要一个脚本,它将使用html文件作为模板,从csv文件为每条记录创建一个单独的html文件.

在Ruby中这是最好的方法吗?蟒蛇?我用这两种语言都可以使用这个工具/库吗?

小智 5

Ruby 内置了 CSV 处理功能,这使得输出静态 HTML 文件变得相当简单。
看:

实际上,Python 也是如此,所以这实际上是个人喜好的问题(或者您已经配置的)。


S.L*_*ott 5

Python与Jinja2.

import jinja
import csv

env= jinja.Environment()
env.loader= jinja.FileSystemLoader("some/directory")
template= env.get_template( "name" )

rdr= csv.reader( open("some.csv", "r" ) )
csv_data = [ row for row in rdr ]

print template.render( data=csv_data )
Run Code Online (Sandbox Code Playgroud)

事实证明,你可以通过简单地rdr直接传递给Jinja进行撕裂来逃脱.

如果模板看起来像这样,它将适用于各种Python结构,包括迭代器.

<table>
{% for row in data %}
<tr>
    <td>{{ row.0 }}</td><td>{{ row.1 }}</td>
</tr>
{% endfor %}
</table>
Run Code Online (Sandbox Code Playgroud)

  • 如果 CSV 文件有标题行,您可以使用 csv.DictReader() 而不是 csv.reader,如下所示:print template.render(rows=csv.DictReader(csv_file)),模板变量如下:{{ row ['姓'] }} (2认同)