根据 Jinja2 中变量的长度动态调整值
Dynamically adjust value based on length of variable in Jinja2
我有以下用于将文本写入文件的代码。这适用于 inventory_hostname 始终相同的长度。
{{ inventory_hostname }}{{ "%-69s" | format(file['path'] | replace('E:', '') | replace('\','/') | truncate(63,true,'')) }}moretext
我想根据 inventory_hostname 的长度设置文本部分的长度。像这样。
{{ inventory_hostname }}{{ "%-{{ 75 - inventory_hostname|length }}s" | format(file['path'] | replace('E:', '') | replace('\','/') | truncate(63,true,'')) }}moretext
我需要结果始终排列在特定的列上。
例如:
hostname1programfiles/program/dll moretext
host1programfiles/program/note moretext
hostnameisreallylong/programfile/p moretext
您可以使用 ljust() 来调整字符串的大小
>>> 'hello'.ljust(20))[0:20]
'hello '
>>> 'hello world'.ljust(20))[0:20]
'hello world '
>>> 'hello world this is a long text'.ljust(20)[0:20]
'hello world this is '
参考:https://docs.python.org/3/library/stdtypes.html#str.ljust
我有以下用于将文本写入文件的代码。这适用于 inventory_hostname 始终相同的长度。
{{ inventory_hostname }}{{ "%-69s" | format(file['path'] | replace('E:', '') | replace('\','/') | truncate(63,true,'')) }}moretext
我想根据 inventory_hostname 的长度设置文本部分的长度。像这样。
{{ inventory_hostname }}{{ "%-{{ 75 - inventory_hostname|length }}s" | format(file['path'] | replace('E:', '') | replace('\','/') | truncate(63,true,'')) }}moretext
我需要结果始终排列在特定的列上。
例如:
hostname1programfiles/program/dll moretext
host1programfiles/program/note moretext
hostnameisreallylong/programfile/p moretext
您可以使用 ljust() 来调整字符串的大小
>>> 'hello'.ljust(20))[0:20]
'hello '
>>> 'hello world'.ljust(20))[0:20]
'hello world '
>>> 'hello world this is a long text'.ljust(20)[0:20]
'hello world this is '
参考:https://docs.python.org/3/library/stdtypes.html#str.ljust