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

Python에서 이중 백슬래시(\\)를 단일 백슬래시(\)로 변환하는 방법

Python에서 이중 백슬래시(\\)를 단일 백슬래시(\)로 변환하는 방법

Python에서 \\\로 바꾸거나, 백슬래시로 이스케이프된 문자열을 원래 상태로 되돌리는(언이스케이프) 작업은 크게 두 가지 방법으로 처리할 수 있습니다.

1. ast.literal_eval 사용하기

첫 번째 방법은 ast.literal_eval을 사용해 문자열을 그대로 평가하는 것입니다. 이 방법을 사용할 때는 대상 문자열을 한 겹 더 따옴표로 감싸야 한다는 점에 유의해야 합니다. 예를 들어 다음과 같습니다.

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

변수 a는 내부에 큰따옴표로 묶인 문자열을 담고 있으며, literal_eval이 이를 실제 파이썬 문자열 리터럴로 해석하면서 \\n이 줄바꿈 문자로 변환됩니다.

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

두 번째 방법은 문자열 클래스의 decode('string_escape') 메서드를 활용하는 것입니다. 예시는 다음과 같습니다.

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

참고: decode('string_escape')는 Python 2에서만 지원되는 방식으로, Python 3에서는 제거되었습니다. Python 3 환경에서는 bytes 객체의 decode('unicode_escape')를 사용하는 것이 좋습니다.

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

상황에 맞는 방법을 선택하면 이스케이프된 문자열을 안전하고 간단하게 원래 형태로 복원할 수 있습니다.