Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 문자열에서 인쇄할 수 없는 문자를 자르는 방법은 무엇입니까?

<시간/>

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