Leia também:
Obter certificado do curso (para trabalhar como programador Python)
Obter apostila Python Progressivo (download do PDF)
Lista de Exercícios de Python
1. 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
2. A ACME Inc., uma empresa de 500 funcionários, está tendo problemas de espaço em disco no seu servidor de arquivos. Para tentar resolver este problema, o Administrador de Rede precisa saber qual o espaço ocupado pelos usuários, e identificar os usuários com maior espaço ocupado. Através de um programa, baixado da Internet, ele conseguiu gerar o seguinte arquivo, chamado "usuarios.txt":
alexandre 456123789
anderson 1245698456
antonio 123456456
carlos 91257581
cesar 987458
rosemary 789456125
Neste arquivo, o nome do usuário possui 15 caracteres. A partir deste arquivo, você deve criar um programa que gere um relatório, chamado "relatório.txt", no seguinte formato:
ACME Inc. Uso do espaço em disco pelos usuários
------------------------------------------------------------------------
Nr. Usuário Espaço utilizado % do uso
1 alexandre 434,99 MB 16,85%
2 anderson 1187,99 MB 46,02%
3 antonio 117,73 MB 4,56%
4 carlos 87,03 MB 3,37%
5 cesar 0,94 MB 0,04%
6 rosemary 752,88 MB 29,16%
Espaço total ocupado: 2581,57 MB
Espaço médio ocupado: 430,26 MB
O arquivo de entrada deve ser lido uma única vez, e os dados armazenados em memória, caso sejam necessários, de forma a agilizar a execução do programa. A conversão da espaço ocupado em disco, de bytes para megabytes deverá ser feita através de uma função separada, que será chamada pelo programa principal. O cálculo do percentual de uso também deverá ser feito através de uma função, que será chamada pelo programa principal.
#!/usr/bin/env python3
ResponderExcluir# -*- coding: utf-8 -*-
"""
Created on Thu Jan 20 13:42:41 2022
@author: wanderson
"""
#Lista de ips permitidos
ip_validos = open('ips_validos.txt','r') #arquivo criado previamente
lista_validos = ip_validos.readlines()
#Tratamento de dados da lista
for index in range(len(lista_validos)):
lista_validos[index] = lista_validos[index].rstrip('\n')
#Lista de ips a serem avaliados
ips_avaliar = open('ips_avaliar.txt','r') #arquivo criado previamente
lista_avaliar = ips_avaliar.readlines()
#Tratamento de dados da lista
for index in range(len(lista_avaliar)):
lista_avaliar[index] = lista_avaliar[index].rstrip('\n')
#Criando os arquivos onde serão gravados os dados de saida
logip_validos = open('logip_validos.txt','w+')
logip_invalidos = open('logip_invalidos.txt','w+')
#Cabeçalho dos arquivos de saida
logip_validos.write('[Endereços válidos:]\n')
logip_invalidos.write('[Endereços inválidos:]\n')
#Analise e gravação de dados
for ip in lista_avaliar:
if lista_validos.count(ip) == 0:
logip_invalidos.write(ip+'\n')
else:
logip_validos.write(ip+'\n')
logip_validos.close()
logip_invalidos.close()