Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 문자열의 이스케이프 시퀀스를 처리하는 방법

Python에서 역슬래시(\)로 이스케이프된 문자열을 원래 상태로 되돌리는(언이스케이프) 방법은 크게 두 가지가 있습니다. 각 방법의 특징과 사용 예시를 살펴보겠습니다.

1. ast.literal_eval() 사용하기

첫 번째 방법은 ast 모듈의 literal_eval() 함수를 사용하는 것입니다. 이 함수는 문자열을 Python 리터럴 표현식으로 안전하게 평가해 줍니다. 주의할 점은 문자열을 한 겹 더 따옴표로 감싸야 한다는 것입니다.

>>> import ast
>>> a = '"Hello,\\nworld"'
>>> print(ast.literal_eval(a))
Hello,
world

위 예제에서 변수 a는 이중 따옴표로 감싸진 문자열을 담고 있으며, literal_eval()이 이를 평가하면서 \n이 실제 줄바꿈 문자로 변환됩니다.

2. decode('string_escape') 사용하기 (Python 2)

두 번째 방법은 문자열 클래스의 decode('string_escape') 메서드를 사용하는 것입니다.

>>> print "Hello,\\nworld".decode('string_escape')
Hello,
world

참고: 'string_escape' 코덱은 Python 2에서만 지원됩니다. Python 3에서는 바이트(bytes) 객체에 대해 decode('unicode_escape')를 사용하거나, codecs.decode() 함수를 활용하는 것이 좋습니다.

>>> b'Hello,\\nworld'.decode('unicode_escape')
'Hello,\nworld'

정리

간단히 요약하면 다음과 같습니다.

  • ast.literal_eval(): 안전성이 보장되며, Python 2와 3 모두에서 사용할 수 있는 권장 방식입니다.
  • decode('string_escape'): Python 2 전용 방식으로, Python 3에서는 decode('unicode_escape')로 대체해야 합니다.

상황에 맞는 방법을 선택하여 이스케이프 시퀀스가 포함된 문자열을 손쉽게 처리할 수 있습니다.