将0添加到主机名

时间:2017-09-07 16:08:34

标签: python

我的文件包含我想要转换为主机名的IP地址。除最后三个八位字节外,IP地址相同。例如:

<View android:layout_width="match_parent"
      android:layout_weight="0.60"
      android:gravity="centre" 
      android:layout_height="0.3dp"
      android:background="#777" />  

我的python脚本中有以下代码,用主机名替换IP地址,主机名以最后的八位字节结尾。

192.168.38.8
192.168.38.9
192.168.38.10

这给了我结果:

 hostname = re.sub('192.168.38.','Host-Name',lm.group(4))

如何让单个数字八位字节具有前导零?期望的输出是;

Host-Name8
Host-Name9
Host-Name10

2 个答案:

答案 0 :(得分:0)

re.sub未正确使用。

documentation for re.sub,您可以传递字符串或替换函数,该函数在找到匹配项时返回字符串。

  

<强>注意:   您可以使用任何方法来回答问题   重复标记以填充单个数字。

def replace_ip(match):
    last_octet = match.group(1)

    return "".join((
        'Host-Name',
        last_octet.zfill(2)
    ))


re.sub(r'192.168.38.(\d+)', replace_ip, ips_from_file)

答案 1 :(得分:0)

您可能会更容易使用split(),如下所示:

for ip_addr in ["192.168.38.8", "192.168.38.9", "192.168.38.10"]:
    print "Host-Name{:02}".format(int(ip_addr.split('.')[3]))

这会给你:

Host-Name08
Host-Name09
Host-Name10