微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将mako呈现的模板写入文件时创建的附加回车符

如何解决将mako呈现的模板写入文件时创建的附加回车符

我正在使用mako模板库生成test.txt文件,但是生成文件在每行之间包含其他空行。

我已经发现与此问题here类似的问题,建议的解决方案建议使用markupsafe,但是我不认为这也适合我的情况,因为它考虑将文本格式设置为渲染模板时需要一个参数,这不是我想要做的(我不想更改模板中的大多数文本,只输入几个变量)。

我认为还值得一提的是,如果我使用Python打印渲染的模板,则其将以正确的格式打印;多余的行仅出现在我使用Python的文件write()将模板数据写入(test.txt)的文件中。

解决方法

背负this answer,解决方案是打开文件进行写入二进制而不是写入。然后您需要将字符串转换为字节并将其写入文件。以下对我有用(tl;dr 最后两行):

templates = TemplateLookup(directories=[input_dir,],module_directory=mako_module_dir)

try:
    rendered_output = templates.get_template(target_template).render_unicode(**data)
except:
    print(mako_exceptions.text_error_template().render())
    return
with open(f'{output_dir}{os.path.sep}{os.path.basename(output_filename)}','wb') as outfile:
    outfile.write(rendered_output.encode())

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。