我需要一些关于python脚本的帮助。我需要在dhcpd文件中搜索主机实体、它们的MAC和IP,并将其打印成一行。我可以找到主机名和IP地址,但无法找出如何将if语句中的变量放到一行中。任何建议,代码如下:
#!/usr/bin/python
import sys
import re
#check for arguments
if len(sys.argv) > 1:
print "usage: no arguments required"
sys.exit()
else:
dhcp_file = open("/etc/dhcp/dhcpd.conf","r")
for line in dhcp_file:
if re.search(r'\bhost\b',line):
split = re.split(r'\s+', line)
print split[1]
if re.search(r'\bhardware ethernet\b',line):
ip = re.split(r'\s+',line)
print ip[2]
dhcp_file.close()
在一般情况下,可以给print()以逗号分隔的值,以便将它们全部打印在一行上:
在您的特定情况下,如何将相关条目添加到列表中,然后在最后打印该列表?
此时,您可能希望将收集到的“条目”合并为一个字符串。如果是,可以使用join()方法(如abarnert建议的那样):
或者,如果你想变得更花哨,你可以使用一个“string”:“list”的字典,并附加到那些列表中,这取决于它们的键字符串(例如,“host”、“hardware”等)
你可以用很多方法来解决这个问题。最简单的方法可能是在if语句之前初始化一个空字符串。然后,不打印split[1]和ip[2],而是将它们连接到空字符串,然后打印。所以看起来像这样:
您还可以使用标志
curhost
,并填充字典:相关问题 更多 >
编程相关推荐