将由“”分隔的数字范围拆分为jinja2 temp

2024-09-25 02:28:53 发布

您现在位置:Python中文网/ 问答频道 /正文

在yaml文件中有这样一个字符串:

switchport private-vlan trunk allowed vlan: 100-115,1060,1802,1455,1433,1422

它被一个jinja2模板转换成这样:

 interface GigabitEthernet100/0/0.100-115
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1060
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1802
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1455
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1433
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1422
 description test02 slot1/1_1G

我在jinja2模板中使用split(请参阅下面的部分代码),以便获得下面描述的结果。。你知道吗

在我拆分之后,如何使它再次拆分它找到的数字范围?比如:如果你看到100-115,从100开始直到115,这样我就可以在for语句中使用它。你知道吗

  {% if lines == "interface GigabitEthernet1/1" %}
  {% for vlan in configIF[lines]['switchport private-vlan trunk allowed vlan'].split(",") %}
 interface GigabitEthernet100/0/0.{{ vlan }}
 description {{ configIF[lines]['description'] }}
   {% endfor %}
  {% endif %}
{{ lines }}
 description {{ configIF[lines]['description'] }}
{% endfor %}

我的结果:

interface GigabitEthernet100/0/0.100-115
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1000
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1402
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1404
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1406
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1414
description test02 slot1/1_1G

预期结果:

interface GigabitEthernet100/0/0.100
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.101
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.102
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.103 ... and so on until 115
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1000
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1402
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1404
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1406
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1414
description test02 slot1/1_1G

Tags: 模板jinja2descriptionprivateinterfacesplittrunklines