ASCII 문자만 있고 인쇄할 수 없는 문자를 제거하려는 경우 가장 쉬운 방법은 string.printable을 사용하여 해당 문자를 필터링하는 것입니다. 예를 들어,
>>> import string >>> filter(lambda x: x in string.printable, '\x01string') string
0x01은 인쇄 가능한 문자가 아니므로 인쇄되지 않았습니다. 유니코드도 지원해야 하는 경우 유니코드 데이터 모듈과 정규식을 사용하여 이러한 문자를 제거해야 합니다.
예시
import sys, unicodedata, re # Get all unicode characters all_chars = (unichr(i) for i in xrange(sys.maxunicode)) # Get all non printable characters control_chars = ''.join(c for c in all_chars if unicodedata.category(c) == 'Cc') # Create regex of above characters control_char_re = re.compile('[%s]' % re.escape(control_chars)) # Substitute these characters by empty string in the original string. def remove_control_chars(s): return control_char_re.sub('', s) print (remove_control_chars('\x00\x01String'))
출력
이 결과는 다음과 같습니다.
String