Paul Rubin <http> wrote: > As for the network representation, DJB proposes this format: > http://cr.yp.to/proto/netstrings.txt
Netstrings are cool and you'll find some python implementations if you search. But it is basically "number:string,", ie "12:hello world!," Or you could use escaping which is what I usually do. This has the advantage that you don't need to know how long the data is in advance. Eg, these are from a scheme which uses \t to seperate arguments and \r or \n to seperate transactions. These are then escaped in the actual data using these functions def escape(s): """This escapes the string passed in, changing CR, LF, TAB and \\ into \\r, \\n, \\t and \\\\""" s = s.replace("\\", "\\\\") s = s.replace("\r", "\\r") s = s.replace("\n", "\\n") s = s.replace("\t", "\\t") return s def unescape(s, _unescape_mapping = string.maketrans('tnr','\t\n\r'), _unescape_re = re.compile(r'\\([(rnt\\)])')): """This unescapes the string passed in, changing \\r, \\n, \\t and \\any_char into CR, LF, TAB and any_char""" def _translate(m): return m.group(1).translate(_unescape_mapping) return _unescape_re.sub(_translate, s) (These functions have been through the optimisation mill which is why they may not look immediately like how you might first think of writing them!) -- Nick Craig-Wood <[EMAIL PROTECTED]> -- http://www.craig-wood.com/nick -- http://mail.python.org/mailman/listinfo/python-list