jinja2 - 如何在 Jinja2 模板中为变量指定列?
问题描述
我有一个看起来像这样的 jinja2 模板。
{% for file in result['files'] %}
descriptiontxt {{ inventory_hostname }}{{ file['path'] | truncate(50)}} {{ {{ '%Y%m%dT%H%M%S' | strftime(file['lastwritetime']) }} MoreDescriptiveText
在此示例中,输出可能如下所示。
descriptiontxt host1C:\dir\directory\directory\directory\txt.txt 20210106T081330 MoreDescriptiveText
descriptiontxt host2C:\dir\directory\txt.txt 20210106T081330 MoreDescriptiveText
descriptiontxt host3C:\dir\directory\truncated\example\123456677 20210106T081330 MoreDescriptiveText
我希望输出看起来像这样。
descriptiontxt host1C:\dir\directory\directory\directory\txt.txt 20210106T081330 MoreDescriptiveText
descriptiontxt host2C:\dir\directory\txt.txt 20210106T081330 MoreDescriptiveText
descriptiontxt host3C:\dir\directory\truncated\example\123456677 20210106T081330 MoreDescriptiveText
如何确保文件每一行的日期字符串从第 72 列(或其他位置)开始?无论前一个条目是 10 个字符还是 50 个字符,假设对前一个变量的截断可确保路径变量永远不会溢出到文件的该部分。
谢谢你。
解决方案
也许通过使用format
过滤器,像这样:
{% for file in result['files'] %}
descriptiontxt {{ inventory_hostname }}{{ "%-50s"|format(file['path'] | truncate(50))}} {{ {{ '%Y%m%dT%H%M%S' | strftime(file['lastwritetime']) }} MoreDescriptiveText
{% endfor %}
file['path']
即使实际字符串较短,这也确保占用 50 个字符。
推荐阅读
- amazon-web-services - 在主动-被动故障转移的情况下,被动 EC2 实例如何工作?
- python - 我可以使用 python 在 onedrive 上编辑 excel 文件吗?
- python - 如何在python中合并dict的dict
- google-cloud-platform - 如何在没有 GPU 的 GCP 实例上运行 Parsec 流服务?(错误代码 15000)
- node.js - 在 Req 中是安全的 JWT 存储吗?会议?
- node.js - 无法执行发布
- elasticsearch - 使用 filebeat/logstash 合并两个日志文件
- c++ - 为什么 C++ std::function 按值而不是通用引用传递函子?
- jquery - 即使字段正确,VeeValidate 3 服务器端验证错误也会显示
- android - 匹配父级不占布局的整个宽度