def main(file, file_com_rl, file_dec_rl): print '\033[94m' + "\n\nRun Length Encoding" + '\033[0m' print "Codifica" now = time.time() #compressione del file erle = rle() erle.encode(file, file_com_rl) print "\t" + str('%.5f' % (time.time() - now)) + "\tseconds" all.dim(file_com_rl) all.perc_comp(file,file_com_rl) print "Decodifica" now = time.time() #decompressione del file drle = rle() drle.decode(file_com_rl, file_dec_rl) print "\t" + str('%.5f' % (time.time() - now)) + "\tseconds" all.dim(file_dec_rl) all.check(file,file_dec_rl)
def main(file, file_com_huf, file_dec_huf, language=""): #language e' "" se calcolo frequenze io, "qualcosa" se uso le statistiche if language=="": print '\033[94m' + "\n\nHuffman con calcolo delle frequenze" + '\033[0m' else: print '\033[94m' + "\n\nHuffman con uso di statistiche" + '\033[0m' print "Codifica" now = time.time() #compressione del file Huff(file, file_com_huf, language) print "\t" + str('%.5f' % (time.time() - now)) + "\tseconds" all.dim(file_com_huf) all.perc_comp(file,file_com_huf) print "Decodifica" now = time.time() #decompressione del file Unhuff(file_com_huf, file_dec_huf, language) print "\t" + str('%.5f' % (time.time() - now)) + "\tseconds" all.dim(file_dec_huf) all.check(file,file_dec_huf)
language = raw_input("Scegli una lingua (ita/eng): ") #preparo nomi dei file file_split = file.split(".") file_name = file_split[0] #huffman statico con frequenze calcolate ad hoc file_com_hf = file_name + "_com_hf.txt" file_dec_hf = file_name + "_dec_hf.txt" #huffman statico con utilizzo di statistiche fisse file_com_hs = file_name + "_com_hs.txt" file_dec_hs = file_name + "_dec_hs.txt" #run length encoding file_com_rl = file_name + "_com_rl.txt" file_dec_rl = file_name + "_dec_rl.txt" #entro nella cartella os.chdir(file_name) #utility che conta il numero dei caratteri print "\nFile originale" all.dim(file) #faccio partire huffman con calcolo frequenze huf.main(file, file_com_hf, file_dec_hf) #non specifico language -> calcolo frequenze #faccio partire huffman usanto statistiche fisse huf.main(file, file_com_hs, file_dec_hs, language) #specifico language -> statistiche fisse #faccio partire rle rle.main(file, file_com_rl, file_dec_rl)