Сортировать порты python
Всем приве! Имеется текстовый файл со списком ip:port, мне нужно сортировать ip адреса по номеру порта в отдельный файл. Есть код
with open('file1.txt') as file:
for k, i in enumerate(file.read().split('\n')):
if k != 0:
name_file = str(i.split(":")[-1].strip()) + '.txt'
file_2 = open(name_file, 'w')
file_2.write(i.split(':')[0])
file_2.close()
Приведенный выше код записывает только первый ip адрес, а мне нужно записать все ip из списка с одинаковым портом, как мне это сделать?
Ответы (1 шт):
Автор решения: slippyk
→ Ссылка
group_ip_by_port = {}
with open('test.txt', 'r') as f:
for line in f:
ip, port = line.strip().split(':')
if port not in group_ip_by_port:
group_ip_by_port[port] = []
group_ip_by_port[port].append(ip)
for port, ip_lst in group_ip_by_port.items():
with open(f'{port}.txt', 'w+') as f:
f.write('\n'.join(ip_lst))