Calculador de Frequência
Publicado por Sander Santos Salazar 16/07/2009
[ Hits: 8.632 ]
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()
Converte valor de Bytes 2 Kbyte 2 Mbyte
Agenda de cadastros com tratamento de erros
Nenhum comentário foi encontrado.
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









