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
непосредственно Джиндже для раздачи.
Если шаблон выглядит следующим образом, он будет работать с широким спектром структур Python, включая итератор.
<table>
{% for row in data %}
<tr>
<td>{{ row.0 }}</td><td>{{ row.1 }}</td>
</tr>
{% endfor %}
</table>