이스케이프하지 않고 파이썬에서 문자열 리터럴을 작성하는 방법은 무엇입니까?


98

내부의 모든 것이 자동으로 이스케이프되거나 리터럴 문자 값을 갖도록 파이썬에서 문자열 변수를 선언하는 방법이 있습니까?

슬래시로 따옴표를 이스케이프하는 방법을 묻는 것이 아닙니다 . 내가 요구하는 것은 모든 것을 문자열 리터럴로 만드는 범용 방법이므로 매우 큰 문자열에 대해 모든 것을 수동으로 통과하고 이스케이프 할 필요가 없습니다. 누구든지 해결책을 알고 있습니까? 감사!

답변:



71

매우 큰 문자열, 특히 여러 줄 문자열을 다루는 경우 삼중 따옴표 구문에 유의하십시오.

a = r"""This is a multiline string
with more than one line
in the source code."""

1
이 구성은 줄 바꿈 문자를 도입합니까? 즉, 변수 a에 두 줄 바꿈 문자가있는 문자열이 포함됩니까?
MadPhysicist

7
@MadPhysicist : 예, 위의 경우 결과 문자열에는 두 개의 줄 바꿈이 포함됩니다.
Greg Hewgill

알겠습니다. 이 문자열에 'split ()'이 사용되면 기본적으로 줄로 분할됩니까?
MadPhysicist

1
@MadPhysicist .split ()의 기본값은 공백으로 분할하는 것이고 줄 바꿈은 공백입니다.
그렉 Hewgill

1
나는 이것을 전에 사용했고 잘 작동합니다. 주의해야 할 두 가지 사항 : 다른 줄에 들여 쓰기 (공백)가 포함되어있는 것이 바람직합니다. 긴 문자열이 "좋지 않은 상태 로 종료 되면 모든 것이 """" 구문 오류로 끝날 것이기 때문 입니다.
Nagev

9

그와 같은 일은 없다. Perl과 쉘에서 "여기 문서"와 같은 것을 원하는 것처럼 보이지만 Python에는 없습니다.

원시 문자열 또는 여러 줄 문자열을 사용하면 걱정할 사항이 적습니다. 원시 문자열을 사용하는 경우 여전히 터미널 "\"주위에서 작업해야하며 모든 문자열 솔루션을 사용하여 데이터에 포함 된 경우 닫는 ", ',' ''또는" ""에 대해 걱정해야합니다. .

즉, 문자열을 가질 방법이 없습니다.

 '   ''' """  " \

어떤 종류의 내부 이스케이프없이 모든 파이썬 문자열 리터럴에 제대로 저장됩니다.



1

(파이썬 코드 내에서 직접 문자열을 입력 할 필요가 없다고 가정)

Andrew Dalke가 지적한 문제를 해결하려면 텍스트 파일에 리터럴 문자열을 입력 한 다음 이것을 사용하면됩니다.

input_ = '/directory_of_text_file/your_text_file.txt' 
input_open   = open(input_,'r+')
input_string = input_open.read()

print input_string

이것은 텍스트 파일에있는 모든 것의 리터럴 텍스트를 인쇄합니다.

 '   ''' """   \

재미 있거나 최적은 아니지만, 특히 문자 이스케이프가 필요한 3 페이지의 코드가있는 경우 유용 할 수 있습니다.


-1

문자열이 변수이면. 그것에 repr 방법 :

>>> s = '\tgherkin\n'

>>> s
'\tgherkin\n'

>>> print(s)
    gherkin

>>> print(s.__repr__())
'\tgherkin\n'

그래도 나쁜 스타일로 간주되지 않습니까?
shah.shah

뭐, 작은 오이?
markling

1
repr(s)더 나은 스타일을 위해 대신 사용할 수 있습니다
xuiqzy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.