我的文件包含我想要转换为主机名的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
答案 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