2013-09-04 2 views
4

두 가지 유형 이상의 인용 부호를 중첩 할 수 있습니까? 내가 '"을 알고 있다는 것을 의미하지만, 더 필요하다면 어떻게 될까요? 허용 여부 :Python : 두 가지 유형의 따옴표 중첩

subprocess.Popen('echo "var1+'hello!'+var2"', shell=True) 

답변

6

당신은 중첩 된 단일 따옴표와 함께 문제의 어떤 종류를 방지하기 위해 삼중 따옴표를 사용할 수 있습니다 : 같은 트리플을 사용하려는 경우

subprocess.Popen('''echo "var1+'hello!'+var2"''', shell=True) 

따옴표로 구분 기호로 문자열 안에 따옴표로 다음 문자열에서 따옴표를 이스케이프해야합니다.

'''some\'\'\'triple quotes\'\'\'''' -> "some'''triple quotes'''" 
,210

또는 당신은 통역 연속 문자열 리터럴을 연결 것이라는 사실에 의존하고, 문자열의 다른 부분에 대해 서로 다른 따옴표를 사용할 수 있습니다

이 방법으로 당신도 아닌 원시 문자열을 혼합 할 수 있다는
subprocess.Popen('echo "var1+' "'hello!'" '+var2"', shell=True) 

주 -raw 문자열 :

In [17]: print('non\traw' r'\traw' 'non\traw') 
non  raw\trawnon  raw 
3

트리플 따옴표가 작동합니다. 당신은 사용할 수 있습니다 ''' 또는 """

subprocess.Popen('''echo "var1+'hello!'+var2"''', shell=True) 
1

당신은 삼중 따옴표 사용할 수 있습니다

subprocess.Popen('''echo "var1+'hello!'+var2"''', shell=True) 


subprocess.Popen("""echo "var1+'hello!'+var2\"""", shell=True)