daved170 wrote:
On Dec 13, 2:34 am, Dennis Lee Bieber <wlfr...@ix.netcom.com> wrote:
On Sat, 12 Dec 2009 10:46:01 +0100, census <cen...@no-email.de>
declaimed the following in gmane.comp.python.general:



def scramble (a): return (a + 13) % 256
        I'll see your modulo rot 13 and raise with a exclusive or...

-=-=-=-

import sys

def scramble(block, key=on't look"):
    copies =nt(len(block) / len(key)) + 1
    keystring =ey * copies
    return "".join([ chr( ord(block[i])
                          ^ ord(keystring[i]))
                     for i in range(len(block))])

def process(fin, fout, key=ne):
    din =pen(fin, "rb")
    dout =pen(fout, "wb")
    while True:
        block =in.read(1024)
        if not block: break
        if key is None:
            block =cramble(block)
        else:
            block =cramble(block, key)
        dout.write(block)
    dout.close()
    din.close()

if __name__ ="__main__":
    fin =ys.argv[1]
    fout =ys.argv[2]
    if len(sys.argv) > 3:
        key =ys.argv[3]
    else:
        key =one
    process(fin, fout, key)
--
        Wulfraed         Dennis Lee Bieber               KD6MOG
        wlfr...@ix.netcom.com      HTTP://wlfraed.home.netcom.com/


Thank you all.
Dennis I really liked you solution for the issue but I have two
question about it:
1) My origin file is Text file and not binary
2) I need to read each time 1 byte. I didn't see that on your example
code.
Thanks again All of you
Dave

If you really need to see each byte of the file, you need to open it as binary. You can then decide that the bytes represent text, in some encoding. If you don't use the "b" flag, the library may change the newline characters out from under you. You have to decide if that matters.

I may have missed it, but I don't think you ever explained why you insist on the data being read one byte at a time. Usually, it's more efficient to read it into a buffer, and process that one byte at a time. But in any case, you can supply your own count to read(). Instead of using 1024, use 1.

DaveA

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to