dadivo Postado Março 1, 2010 Denunciar Share Postado Março 1, 2010 Uma empresa está tendo problemas com espaço em seus servidores de arquivos. Foigerada uma lista dos nomes e os respectivos espaços utilizados pelos funcionários. Aseguinte lista de nome lista.txt é gerada pelo servidor:No arquivo, você encontrará o nome de usuário em um campo e o espaço utilizado porele. vitor 456 anderson 1245 rafaela 98724 ana 1888 rose 458 cesar 6125A partir da lista informada pelo seu chefe, você deverá fazer o seguinte programa: • Criar uma função para separar do arquivo os nomes e o espaço utilizado pelo usuário, gerando assim um dicionário de chave igual a nome e valores igual a espaço utilizado; • Criar uma outra função que faça a soma de todo o espaço utilizado pelo total de usuários; • Criar uma outra função que calcule a porcentagem de utilização do espaço utilizado de cada usuário. Cada usuário tem como espaço total 2GB (2000 MB). •Se o usuário ultrapassar esse valor, deverá aparecer ainda uma informação extra nalinha contendo a mensagem: "Ultrapassou espaço disponível"Por fim, deverá mostrar na tela.Segue um exemplo de saída. EJOVEM Uso do espaço em disco pelos usuários ------------------------------------------------------------ Nr. Usuário Espaço utilizado % do uso 1 vitor 456 MB X% 2 anderson 1245 MB X% 3 rafaela 98724 MB X% 4 ana 1888 MB X% 5 rose 458 MB X% 6 cesar 6125 MB X% Espaço total ocupado: 108896 MBDicas1.Utilize 1000MB como 1GB2.Procure pela função split() que é utilizada em strings.3.Procure pela função zip() que tem como argumento duas listasPor favor me ajudem para essa solução???? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dadivo Postado Março 11, 2010 Autor Denunciar Share Postado Março 11, 2010 Olá, moçada eu postei essa questao e vi que ninguém conseguiui a resposta ....poes esta ai a solução da questao#!/usr/bin/env python# -*- coding: latin-1 -*-## Autor: ANDRE LIMA# Função: WebMaster e Programador# Data: 10/03/2010#funcao para verificar existencia de um arquivodef arquivoExiste(arq="lista.txt"): try: a = open(arq, "r") a.close() return True except: return False#leitura de arquivodef lerArquivo(arq="lista.txt"): try: a = open(arq, "r") conteudo = a.readlines() a.close() return conteudo except: print "Arquivo não encontrado" return False#Esta funcao separa o nome do usuario e o espaco que ele utilizoudef nome_valor(conteudo): dic = {} for x in conteudo: str(x) a = x.split() b = a[0] c = int(a[1]) dic = c return dic#Recebe como parametro um dicionario (resultado da funcao nome_valor()) e soma seus valores def somarValores(dic): valores = dic.values() total = 0 i = 0 for x in valores: i = int(x)+i return i#Retorna as porcentagensdef porcentagem(dic): valores = dic.values() entrada = dic.keys() porcent = [] for x in valores: if x > 2000: porcent.append("Ultrapassou espaco disponivel") else: i = x*100/2000 porcent.append(i) return porcent#Gera relatorio def geraRelatorio(dic,porcent, soma): entrada = dic.keys() valores = dic.values() i=0 arq = open("relatorio.txt", "w") arq.write("EJOVEM\t\t\tUso do espaco em disco pelos usuarios\n") arq.close() arq = open("relatorio.txt", "a") arq.write("----------------------------------------------------------------------------\n") arq.write("Nr.\tUsuario\t\tEspaco utilizado\t% do uso\n") for x in entrada: arq.write(str(i+1)+"\t") arq.write(x+"\t\t") arq.write(str(valores)+"\t\t\t") arq.write(str(porcent)+"\n") i = i+1 arq.write("Espaco total ocupado: %d MB" %(soma)) arq.close() arq = open("relatorio.txt", "r") texto = arq.read() return texto #Fluxo Principalif arquivoExiste(): conteudo = lerArquivo() dic = nome_valor(conteudo) soma = somarValores(dic) porcentag = porcentagem(dic) print geraRelatorio(dic, porcentag, soma)else: print "Arquivo inexistente" Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
dadivo
Uma empresa está tendo problemas com espaço em seus servidores de arquivos. Foi
gerada uma lista dos nomes e os respectivos espaços utilizados pelos funcionários. A
seguinte lista de nome lista.txt é gerada pelo servidor:
No arquivo, você encontrará o nome de usuário em um campo e o espaço utilizado por
ele.
vitor 456
anderson 1245
rafaela 98724
ana 1888
rose 458
cesar 6125
A partir da lista informada pelo seu chefe, você deverá fazer o seguinte programa:
• Criar uma função para separar do arquivo os nomes e o espaço
utilizado pelo usuário, gerando assim um dicionário de chave
igual a nome e valores igual a espaço utilizado;
• Criar uma outra função que faça a soma de todo o espaço utilizado pelo total de
usuários;
• Criar uma outra função que calcule a porcentagem de utilização do espaço
utilizado de cada usuário. Cada usuário tem como espaço total 2GB (2000 MB).
•
Se o usuário ultrapassar esse valor, deverá aparecer ainda uma informação extra na
linha contendo a mensagem: "Ultrapassou espaço disponível"
Por fim, deverá mostrar na tela.
Segue um exemplo de saída.
EJOVEM Uso do espaço em disco pelos usuários
------------------------------------------------------------
Nr. Usuário Espaço utilizado % do uso
1 vitor 456 MB X%
2 anderson 1245 MB X%
3 rafaela 98724 MB X%
4 ana 1888 MB X%
5 rose 458 MB X%
6 cesar 6125 MB X%
Espaço total ocupado: 108896 MB
Dicas
1.Utilize 1000MB como 1GB
2.Procure pela função split() que é utilizada em strings.
3.Procure pela função zip() que tem como argumento duas listas
Por favor me ajudem para essa solução????
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.