我有一個包含輸入象下面這樣的文件:如何在Python
host1 192.168.100.24
[email protected] host2 192.168.100.45 host7 192.168.100.40 host3 192.168.100.34 host4 192.168.100.20
[email protected] host8 192.168.100.48 host6 192.168.100.43 host10 192.168.100.37
host5 192.168.100.24 host9 192.168.100.33
預期輸出:
no_email:
host1 192.168.100.24
host5 192.168.100.24
host9 192.168.100.33
[email protected]:
host2 192.168.100.45
host7 192.168.100.40
host3 192.168.100.34
host4 192.168.100.20
[email protected]:
host8 192.168.100.48
host6 192.168.100.43
host10 192.168.100.37
代碼:
def get_contacts(filename):
emails = []
hostname = []
ip = []
with open(filename,'r') as contacts_file:
for a_contact in contacts_file:
match = re.match('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$', a_contact.split()[0])
if match == None:
emails.append('no_email')
hostname.append(a_contact.split()[0])
ip.append(a_contact.split()[1])
line_length = a_contact.count(' ')
elif line_length > 1:
emails.append(a_contact.split()[0])
hostname.append(a_contact.split()[1])
ip.append(a_contact.split()[2])
else:
emails.append(a_contact.split()[0])
hostname.append(a_contact.split()[1])
ip.append(a_contact.split()[2])
return emails, hostname, ip
我只想返回將用於發送到從列表返回的指定電子郵件地址的主機名和IP列表。任何人都可以幫助我輕鬆完成任務嗎?謝謝。
如果您使用'dict'將主機名和ips作爲值存儲爲電子郵件/無電子郵件作爲密鑰,可以嗎? – officialaimm
@officialaimm,是的,它會沒事的。謝謝。 – rmstmg