用HTML模板格式化CSV文件数据
我有一个csv文件,里面存着数据,还有一个HTML文件,叫做模板。
我想要一个脚本,能够根据csv文件里的每一条记录,生成一个独立的HTML文件,并且用那个HTML文件作为模板。
在Ruby或者Python中,哪种方法最好呢?有没有什么工具或者库可以用来实现这个功能?
2 个回答
5
Ruby有内置的CSV处理功能,这让输出静态HTML文件变得相对简单。
可以参考以下链接:
- http://www.rubytips.org/2008/01/06/csv-processing-in-ruby/
- http://www.ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html
其实,Python也有类似的功能,所以这主要是个人的喜好问题(或者说你已经配置好的工具)。
6
使用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 )
其实,你可以直接把rdr
传给Jinja来渲染,这样就可以了。
如果模板是这样的,它可以适用于多种Python结构,包括迭代器。
<table>
{% for row in data %}
<tr>
<td>{{ row.0 }}</td><td>{{ row.1 }}</td>
</tr>
{% endfor %}
</table>