{% macro print(files) %}
{% for file in files %}
{% if file == "a" %}
file_a
{% else %}
file_b
{% endif %}
{% endfor %}
{% endmacro %}
BEGIN
FIRST_FILE
{{print(files)}}
LAST_FILE
END
import jinja2
import os
tmpl_loader = jinja2.FileSystemLoader(searchpath=os.path.dirname("template.jinja2"))
tmpl_env = jinja2.Environment(loader=tmpl_loader, lstrip_blocks=True, trim_blocks=True)
tmpl_file = tmpl_env.get_template(os.path.basename("template.jinja2"))
tmpl_file.stream({'files': ['a', 'b', 'c', 'a']}).dump("file.txt")
BEGIN
FIRST_FILE
file_a
file_b
file_b
file_a
<------- redundant newline
LAST_FILE
END