1/def main/i 2class NullsInString(Exception): 3 """Nulls in string.""" 4 5_FILTER=''.join([(len(repr(chr(x)))==3) and chr(x) or '.' for x in range(256)]) 6 7def _dump(src, length=16): 8 result=[] 9 for i in xrange(0, len(src), length): 10 s = src[i:i+length] 11 hexa = ' '.join(["%02X"%ord(x) for x in s]) 12 printable = s.translate(_FILTER) 13 result.append("%04X %-*s %s\n" % (i, length*3, hexa, printable)) 14 return ''.join(result) 15 16. 17/print ""\.join((file_prefix, "/s/^/ / 18i 19 try: 20 if attrs[attr_name].find('\0') >= 0: 21 raise NullsInString; 22. 23.+1a 24 except (UnicodeDecodeError, NullsInString): 25 print "".join((file_prefix, "%s:" % (attr_name,))) 26 print _dump(attrs[attr_name]) 27. 28w 29