Skip to content

Instantly share code, notes, and snippets.

@cecyurbina
Created April 18, 2013 07:16
Show Gist options
  • Save cecyurbina/5410804 to your computer and use it in GitHub Desktop.
Save cecyurbina/5410804 to your computer and use it in GitHub Desktop.
#!/usr/bin/python
from fractions import Fraction
#para comprimir
scheme = {'000':[1111111,'s1'], '001':[1111110,'s2'], '010':[111110,'s3'],
'011':[11110,'s4'], '100':[1110,'s5'], '101':[110,'s6'],
'110':[10, 's7'], '111':[0,'s8']}
#archivo de entrada
f = open('entrada.txt', 'r')
file = f.readline().replace("\n", "")
f.close()
#se codifica
temp = ''
compress = ''
compress_1 = ''
for i in file:
temp = temp + i
if temp in scheme:
compress = compress + str(scheme[temp][0])
compress_1 = compress_1 + scheme[temp][1]
temp = ''
#para obtener compression ratio
num = Fraction(len(file), len(compress)).numerator
den = Fraction(len(file), len(compress)).denominator
print "*****************************************"
print "Archivo original"
print file
print "Tamano %s bits" %len(file)
print "*****************************************"
print "Archivo comprimido"
print compress
print compress_1
print "Tamano %s bits" %len(compress)
print "*****************************************"
print "compression ratio %s/%s" %(num, den)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment