0
Good night. I’m solving all the Pythonbrasil lists, I’m on Listadeexerciciosprojetos 1. I managed to solve the problems but I’m not able to assemble the HTML page, I haven’t programmed for a long time I’m very rusty.
To generate the PDF I used the code.
with open('Controles_Disco.txt','w+') as file:
file.write('alexandre\t456123789\n'
'anderson\t1245698456\n'
'antonio\t123456456\n'
'carlos\t91257581\n'
'cesar\t987458\n'
'rosemary\t789456125')
To process the PDF I used the code:
def conversorByteMegabyte (bytes):
valor=bytes/1048576
return(valor)
with open('Controles_Disco.txt', 'r') as file:
espaco_disco_ocupado = 0
media_espaco_ocupado = 0
linhas = file.readlines()# Lendo Linhas do arquivo
nomes = ['']*len(linhas) # Listas de nomes
numeros = [0]*len(linhas) # Listas de valores
nomes_numeros = [('',0)]*len(linhas) #Lista de um novo tipo de dados para auxiliar na ordenação
i = 0 #Variavel para percorrer linha dentro do primeiro For
j = 0 #Variavel para percorrer linha dentro do segundo For
for linha in linhas: # Percorre lista de linhas
palavra = ""
for caracterer in linha: #percorre caracteres na linha
if caracterer == '1' or caracterer == '2' or caracterer == '3' or caracterer == '4' or \
caracterer == '5' or caracterer == '6' or caracterer == '7' or caracterer == '8' or \
caracterer == '9' or caracterer == '0': #Se caracter for numero concatena o valor atual com o novo
palavra = palavra + caracterer
palavra = int(''.join(palavra))
if i < len(linhas):
numeros[i] = palavra
i += 1
for linha in linhas: #Criando lista de nomes semelhante aos numeros
palavra=""
for caracterer in linha:
if caracterer != '\t':
palavra = palavra + caracterer
else:
break
if j < len(linhas):
while len(palavra) < 11: #Nivelando tamanho da palavra para ficar tudo enquadrado
palavra = palavra + ' '
nomes[j] = palavra
j += 1
for x in range(len(linhas)): #Popula o novo tipo de dados com nome e valores
nomes_numeros[x] = f'{(nomes[x].title())}', conversorByteMegabyte(numeros[x])
nomes_numeros = sorted(nomes_numeros, key = lambda nomes: nomes[1], reverse = True) #Ordena Lista pelo segundo atributo da Tupla
for numero in numeros: # Calculos Espaço Ocupado
espaco_disco_ocupado += conversorByteMegabyte(numero)
media_espaco_ocupado = espaco_disco_ocupado / len(linhas) #Calculos espaço medio usado
linha_imprimir=[]
with open ('Relatorio_Controles_disco.txt','w+') as file:
linha_imprimir.append('ACME Inc. Uso do espaco em disco pelos usuarios\n\------------------------------------------------------------------------' + '\n'
'Nr.\tUsuario\t\tEspaco utilizado MB\t\t% do uso\n')
for h in range(len(linhas)):
linha_imprimir.append(f'{h+1}\t'
f'{nomes_numeros[h][0]}\t\t'
f'{round(nomes_numeros[h][1],2)}\t\t\t\t'
f'{round((nomes_numeros[h][1]/espaco_disco_ocupado)*100,2)}'
f'\n')
linha_imprimir.append(f'\nEspaco total ocupado:{round(espaco_disco_ocupado,2)}\n'
f'Espaco medio ocupado:{round(media_espaco_ocupado,2)}')
for letra in linha_imprimir:
file.write(letra)
I tried to Generate HTML by typing the TAGS but it doesn’t work, it generates the HTML file but is empty.
If you find points for optimization please let me know !
You could post the code you’ve already done to generate HTML and it’s blank?
– leandro.dev