Code: Alles auswählen
esc_list = [("\\", "\\\\"), ("\n", r"\n")]
def escape(s, esc_list=esc_list):
"Escape s with chars from list esc_list where val0=char, val1=esc_sequence"
for key, esc_seq in esc_list:
s = s.replace(key, esc_seq)
return s
def unescape(s, esc_list=esc_list):
"Unescape s with chars from list esc_list where val0=char, val1=esc_sequence"
chunks = s.split("\\\\")
for chunk_id in xrange(len(chunks)):
for key, esc_seq in esc_list:
if key == "\\": continue
chunks[chunk_id] = chunks[chunk_id].replace(esc_seq, key)
return "\\".join(chunks)
def test():
original = "hallo\nwelt\!"
print "original: ", list(original), len(original)
esc = escape(original)
print "escaped: ",list(esc), len(esc)
unesc = unescape(esc)
print "unescaped (orig.):", list(unesc), len(unesc)
if __name__ == "__main__":
test()
Gruß,
Michel