Fredrik Lundh wrote:
Will McGugan wrote:


Please implement this as a Python module. I would like to compress my mp3 collection to single bits.


here's the magic algorithm (somewhat simplified):

def algorithm(data):
    m = 102021 # magic constant
    d = [int(c) for c in str(1*2*3*4*5*m+5+4+2+1)]
    x = [ord(c) for c in hex(1+2+4+5+m*5*4*3*2*1)]
    x[d[0]*d[1]*d[2]] = x[d[-1]] + sum(d) - d[d[-d[-1]-1]] + d[0]
    x = __import__("".join(chr(c) for c in x[d[0]*d[1]:])).encodestring
    return "".join(x(data).split("\n")).rstrip("="), sum(d)-sum(reversed(d))

and here's a driver for your MP3 collection:

import glob

def compress(filename):
    data = open(filename, "rb").read()
    keycode, bit = algorithm(data)
    file = open(keycode + ".out", "wb")
    file.write(chr(bit))
    file.close()
    print "compressed", filename,
    print len(data), "=>", 1, round(100.0/len(data), 3), "%"

for file in glob.glob("*.mp3"):
    compress(file)

</F>



Muchas gracias. Although there may be a bug. I compressed my Evanescence albumn, but after decompression it became the complete works of Charles Dickens..



--
http://www.willmcgugan.com
"".join( [ {'*':'@','^':'.'}.get(c,None) or chr(97+(ord(c)-84)%26) for c in "jvyy*jvyyzpthtna^pbz" ] )
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to