我正在使用mako template
python
并尝试使用python
脚本中的列表生成文本文件。代码的一部分如下所示,这会导致问题。
% for COMPNAME in tpdob.scalar_modi:
${COMPNAME[0]} ${COMPNAME[1]} ${COMPNAME[2]} ${COMPNAME[3]}
% endfor
我正在使用此代码,输出很糟糕。
在这里,我在scalar_modi
中有很多列表,我逐个打印它们(每个列表有4个值)。但问题是,有很多新行被打印,使得输出文本文件看起来很难看。
我在网上搜索,但无法找到所需的解决方案。
能帮帮我吗?
关于产出的评论:
${COMPNAME[0]} ${COMPNAME[1]} ${COMPNAME[2]} ${COMPNAME[3]}
,我得到了:
1 42 gzb dli
14 23 tpty sre
32 55 puri ald
使用${COMPNAME[0]} ${COMPNAME[1]} ${COMPNAME[2]} ${COMPNAME[3]} \
时,会给出:
11 42 gzb dli14 23 tpty sre32 55 puri ald
我希望它像:
11 42 gzb dli
14 23 tpty sre
32 55 puri ald
当使用if-else
条件时,我的成绩甚至超过2 newlines
。任何人都可以帮我这个。我也无法在其文档中找到解决方案:(
答案 0 :(得分:1)
我遇到了同样的问题,看起来像是用于Windows的Mako模板中的错误。提供模板作为字符串而不是文件引用(如下所示)解决了问题。
with open('code.template') as f:
templateStr = f.read()
template = mako.template.Template(templateStr)
答案 1 :(得分:1)
旧话题,但是我发现使用预处理器kwarg可以找到一种更好的方法:
tpl_lookup = TemplateLookup(directories=['./templates'], output_encoding='utf-8', module_directory='./tmp', preprocessor=[lambda x: x.replace("\r\n", "\n")])