Seite 1 von 1

Verfasst: Dienstag 14. April 2009, 13:42
von yipyip
Hab' auch noch eine Version:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import with_statement
import string
import codecs

def encdecode(alpha):
  
  def code(text, char, mode):

    index = alpha.find(char)
    alpha_i = alpha[index:] + alpha[:index]
    pair = alpha, alpha_i
    dct = dict(zip(pair[0^mode], pair[1^mode]))
    return ''.join(dct.get(c, c) for c in text)

  codefunc = lambda mode : lambda text, char: code(text, char, mode)
  return codefunc(0), codefunc(1)


def file_encdecode(encdecode, alpha=string.printable):

  def file_code(src, dest, char, encdec, mode):

    with codecs.open(src, 'r', 'utf-8') as infile:
      text = infile.read()

    #print text.encode('utf-8')
    with codecs.open(dest, 'w', 'utf-8') as outfile:
      outfile.write(encdec[mode](text, char))

  codefunc = lambda mode:\
    lambda src, dest, char: file_code(src, dest, char, encdecode(alpha), mode)
    
  return codefunc(0), codefunc(1)

 
if __name__ == '__main__':

  enc, dec = file_encdecode(encdecode)
  enc('test', 'test.caes', 'x')
  dec('test.caes', 'test.clear', 'x')
...duck und weg...
:wink:
yipyip

Verfasst: Donnerstag 16. April 2009, 12:04
von Dango
Ich werde mich bemühen. :wink: