Calculador de Frequência

Publicado por Sander Santos Salazar 16/07/2009

[ Hits: 8.258 ]

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

  



Esconder código-fonte

#!/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()

Scripts recomendados

Gerenciador de músicas

Hashing Linear

pyTube v1.0

backup all files

hicon - Criador de ícones desktop e aplicações do Gnome


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts