Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida nesse exercicio


dadivo

Pergunta

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

  • 0

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 arquivo

def arquivoExiste(arq="lista.txt"):

try:

a = open(arq, "r")

a.close()

return True

except:

return False

#leitura de arquivo

def 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 utilizou

def 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 porcentagens

def 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 Principal

if arquivoExiste():

conteudo = lerArquivo()

dic = nome_valor(conteudo)

soma = somarValores(dic)

porcentag = porcentagem(dic)

print geraRelatorio(dic, porcentag, soma)

else:

print "Arquivo inexistente"

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...