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')
yipyip