For this instance, there is no need for maketrans for byte strings or Unicode strings:
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> delete_chars=''.join(chr(i) for i in xrange(32)) >>> '\x00abc\x01def\x1fg'.translate(None,delete_chars) 'abcdefg'
or
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> delete_chars = dict.fromkeys(range(32)) >>> u'\x00abc\x01def\x1fg'.translate(delete_chars) u'abcdefg'
or even in Python 3:
Python 3.1.3 (r313:86834, Nov 27 2010, 18:30:53) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> delete_chars = dict.fromkeys(range(32)) >>> '\x00abc\x01def\x1fg'.translate(delete_chars) 'abcdefg'
See help(str.translate) and help(unicode.translate) (in Python2) for more details.
Mark tolonen
source share