Olá galera!
Estou revisando algumas coisas a respeito de arquivos e como manipula-los. Me deparei com o seguinte exercício:
"Faça um programa que leia um arquivo texto contendo uma lista de endereços IP e gere um outro arquivo, contendo um relatório dos endereços IP válidos e inválidos. O arquivo de entrada possui o seguinte formato: 200.135.80.9 192.168.1.1 8.35.67.74 257.32.4.5 85.345.1.2 1.2.3.4 9.8.234.5 192.168.0.256 O arquivo de saída possui o seguinte formato: [Endereços válidos:] 200.135.80.9 192.168.1.1 8.35.67.74 1.2.3.4
[Endereços inválidos:] 257.32.4.5 85.345.1.2 9.8.234.5 192.168.0.256"
Na tentativa de resolver essa atividade desenvolvi o seguinte código:
valido = True
ip_valido = ['']
ip_invalido = ['']
with open('Endereços IP', 'r') as arquivo1:
for linha in arquivo1:
linha = linha.split('.')
if linha == sorted(linha, reverse=True):
linha = '.'.join(linha)
ip_valido.append(linha)
else:
linha = '.'.join(linha)
ip_invalido.append(linha)
for elemento in ip_invalido:
print(elemento)
print('\n')
Tentei utilizar métodos como split() para divir a linha do arquivo, sorted(linha, reverse=True) para comparar se o ip corresponde a uma ordem decrescente de valores, e join() para voltar o ip para sua configuração original.
Contudo, considerando que no final do código deixei apenas um print para verificar se as listas corresponderam ao esperado, meu código está jogando tudo para a lista de "ip_invalido".
Alguém poderia me ajudar?