본문 바로가기
파이썬

파이썬 문자열 목록에서 모든 이스케이프 시퀀스를 제거하는 방법은 무엇입니까?

by º기록 2020. 9. 26.
반응형

문자열 목록에서 모든 유형의 이스케이프 시퀀스를 제거하고 싶습니다. 어떻게 할 수 있습니까? 입력:

['william', 'short', '\x80', 'twitter', '\xaa', '\xe2', 'video', 'guy', 'ray']

산출:

['william', 'short', 'twitter', 'video', 'guy', 'ray']


 

해결 방법

 

이 같은?

>>> from ast import literal_eval
>>> s = r'Hello,\nworld!'
>>> print(literal_eval("'%s'" % s))
Hello,
world!

수정 : 좋습니다. 원하는 것이 아닙니다. @Sven Marnach가 설명했듯이 문자열에는 실제로 이스케이프 시퀀스가 ​​포함되어 있지 않기 때문에 일반적으로 원하는 작업을 수행 할 수 없습니다. 그것들은 문자열 리터럴의 표기법입니다.

목록에서 비 ASCII 문자로 모든 문자열을 필터링 할 수 있습니다.

def is_ascii(s):
    try:
        s.decode('ascii')
        return True
    except UnicodeDecodeError:
        return False

[s for s in ['william', 'short', '\x80', 'twitter', '\xaa',
             '\xe2', 'video', 'guy', 'ray']
 if is_ascii(s)]

 

참조 페이지 https://stackoverflow.com/questions/8115261

 

 

반응형

댓글