Calculador de Frequência
Publicado por Sander Santos Salazar 16/07/2009
[ Hits: 8.584 ]
Download calculadorDeFrequencia.py
Este programa calcula quantas vezes cada linha se repete em um arquivo de texto e escreve o resultado em uma tabela HTML.
Este programa me economizou horas de trabalho =).
É meu primeiro programa de verdade, espero que gostem e mandem sugestões!!!!!=D
#!/usr/bin/python
#
# -*- coding: utf-8 -*-
#
# frequencyCalculator.py
#
from optparse import OptionParser
def calculateFrequency(inFile,toSort):
"""
Determina quantas vezes cada linha em um arquivo de texto repete-se.
"""
frequency = {} # O uso de dicionario facilita muito mais esta função
input = open(inFile,"r")
for line in input:
if (line in frequency):
frequency[line] += 1
else:
frequency[line] = 1
input.close()
frequency = frequency.items()
if (toSort):
frequency.sort() # Ordena alfabéticamente as linhas
return frequency
def printFrequency(outFile,frequency):
"""
Escreve um arquivo HTML com uma tabela com 2 colunas:
* A primeira com a linha do texto;
* A segunda com a quantidade de vezes que cada linha se repetiu.
"""
output = open(str(outFile),"w")
output.write("<html>\n\t<head>\n\t\t")
output.write("<title>\n\t\t ..::Frequencia::.. \n\t\t</title>")
output.write("\n\t</head>\n\t<body>")
output.write("\n\t\t<table border=1>\n")
for exitValue in frequency:
output.write("\t\t\t<tr>\n\t\t\t\t<td> {0} </td>".format(exitValue[0][:-1]))
output.write("\n\t\t\t\t<td> {0} </td>\n\t\t\t</tr>\n".format(exitValue[1]))
output.write("\n\t\t</table>\n")
output.write("\t</body>\n<html>")
output.close()
return 0
def main():
"""
Determina os argumentos passados para o programa.
"""
usage = "usage: %prog [options] -o OUTFILE -i INFILE"
parser = OptionParser(usage = usage)
parser.add_option("-s", "--sort" , action="store_true",dest="toSort", help="Ativa a ordenacao alfabetica.")
parser.add_option("-o", "--output", default="",dest="outFile", help="Arquivo HTML onde sera impresso a frequencia.")
parser.add_option("-i", "--input" , default="",dest="inFile" , help="Arquivo de texto onde sera impresso a frequencia.")
(options, args) = parser.parse_args()
if (options.outFile != "") and (options.inFile !=""):
frequency = calculateFrequency(options.inFile, options.toSort)
printFrequency(options.outFile,frequency)
elif (options.outFile == "") and (options.inFile ==""):
parser.print_help()
elif (options.outFile == ""):
parser.error("Não foi expresso o arquivo de saída.")
elif (options.inFile == ""):
parser.error("Não foi expresso o arquivo de entrada.")
return 0
if __name__ == '__main__': main()
Dividir um grupo de arquivos em vários CDs Ou DVDs
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Consertando o áudio com estalos e interrupções no Pipewire
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
REDE WI-FI NÃO APARECE NO LINUX MINT (2)
Como programar um sistema de controle para distribuições linux em c? (5)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... (2)









