Python 如何将mako模板中的多个换行符转换为一个换行符?
我正在将Python 如何将mako模板中的多个换行符转换为一个换行符?,python,mako,Python,Mako,我正在将mako模板与python一起使用,并尝试使用python脚本中的列表生成文本文件。下面显示了导致问题的部分代码 % for COMPNAME in tpdob.scalar_modi: ${COMPNAME[0]} ${COMPNAME[1]} ${COMPNAME[2]} ${COMPNAME[3]} % endfor 我正在使用这段代码,输出非常糟糕 在这里,我在scalar_modi中有许多列表,我正在逐个打印它们(每个列表有4个值)。但问题是,打印的新行太多,使输出文
mako模板
与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数据链路接口 14 23 tpty sre 32 55普里阿尔德
使用
${COMPNAME[0]}${COMPNAME[1]}${COMPNAME[2]}${COMPNAME[3]}\
时,给出:
11 42 gzb dli14 23 tpty SRE3 55普里阿尔德
我希望它像:
11 42 gzb dli
14 23 tpty sre
32 55普里阿尔德
当使用
if-else
条件时,我得到的新行数甚至超过了2行。谁能帮我一下吗。我也无法在其文档中找到解决方案:(我也有同样的问题,看起来像是Mako Templates for Windows中的一个bug。将模板作为字符串而不是文件引用(如下所示)提供解决了问题
with open('code.template') as f:
templateStr = f.read()
template = mako.template.Template(templateStr)
旧主题,但我刚刚发现了一种使用预处理器kwarg的更好方法:
tpl_lookup = TemplateLookup(directories=['./templates'], output_encoding='utf-8', module_directory='./tmp', preprocessor=[lambda x: x.replace("\r\n", "\n")])
错误链接: