在mako temp中拆分变量

2024-06-10 00:35:35 发布

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

下面的代码在Python命令行上运行

CELLULAR='1.2.3.4'
OCTETS=CELLULAR_IP.split('.')
FOURTH_OCTET=OCTETS[3]
T101_IP='10.1.1.'+FOURTH_OCTET
T102_IP='10.1.2.'+FOURTH_OCTET
T103_IP='10.1.3.'+FOURTH_OCTET
T104_IP='10.1.4.'+FOURTH_OCTET

但我有各种各样的麻烦做这个在Mako模板。我试图完成的是在一个变量中向模板传递一个IP地址,并获取该IP的最后一个八位字节,然后使用它创建4个其他IP。我想我可以把这个放在这样一个街区里:

<%
OCTETS=CELLULAR_IP.split('.')
FOURTH_OCTET=OCTETS[3]
T101_IP='10.1.1.'+FOURTH_OCTET
T102_IP='10.1.2.'+FOURTH_OCTET
T103_IP='10.1.3.'+FOURTH_OCTET
T104_IP='10.1.4.'+FOURTH_OCTET
%>

但我得到“列表索引超出范围”的错误。我想这也可能会引起变量范围的一些问题,我正在努力解决这些问题。你知道吗

我还试图定义一个函数来实现这一点,但我有限的Python能力阻碍了我的成功。你知道吗

def get_octets(ip_string):
   try:
       OCTETS=CELLULAR_IP.split('.')
       return FOURTH_OCTET=OCTETS[3]
   except ValueError:
       return 0

有什么想法,我应该看看,以完成这一点?你知道吗


Tags: 代码命令行ip模板returnmakooctetssplit
1条回答
网友
1楼 · 发布于 2024-06-10 00:35:35

这是可行的,但看起来很模糊。你知道吗

   def get_octets(ip_string):
        try:
           return (ip_string).split('.')[3]
        except:
           # if ip_string won’t contain at least three . catch any exception and return -1
           return -1

相关问题 更多 >