python 里的hexdump
强悍程度略见一斑啊
- FILTER=''.join([(len(repr(chr(x)))==3) and chr(x) or '.' for x in range(256)])
- def dump(src, length=8):
- N=0; result=''
- while src:
- s,src = src[:length],src[length:]
- hexa = ' '.join(["%02X"%ord(x) for x in s])
- s = s.translate(FILTER)
- result += "%04X %-*s %s\n" % (N, length*3, hexa, s)
- N+=length
- return result
- def dump2(src, length=8):
- result=[]
- for i in xrange(0, len(src), length):
- s = src[i:i+length]
- hexa = ' '.join(["%02X"%ord(x) for x in s])
- printable = s.translate(FILTER)
- result.append("%04X %-*s %s\n" % (i, length*3, hexa, printable))
- return ''.join(result)