![](/img/trans.png)
[英]How to replace consecutive newlines by one single newline using regex in Python
[英]How to convert multiple newlines in mako template to one newline?
我正在将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 普里奥尔德
使用${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 普里奥尔德
当使用if-else
条件时,我得到的newlines
甚至超过 2 个。 任何人都可以帮我解决这个问题。 我也无法在其文档中找到解决方案:(
我遇到了同样的问题,看起来像是 Windows 版 Mako 模板中的一个错误。 提供模板作为字符串而不是文件引用(如下所示)解决了这个问题。
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")])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.