Python:嵌套两种以上的引号

时间:2013-09-04 14:14:22

标签: python nested quotes

是否可以嵌套两种以上的引号?我的意思是我知道'",但如果我需要更多,该怎么办? 这是允许的:

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

3 个答案:

答案 0 :(得分:9)

您可以使用三引号来避免嵌套引号出现任何问题:

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

如果你想在字符串中使用相同的三引号作为分隔符,那么你必须转义字符串中的引号:

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

或者你可以依赖这样一个事实:解释器将连接连续的字符串文字,并对字符串的不同部分使用不同的引号:

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

请注意,通过这种方式,您甚至可以将原始字符串与非原始字符串混合使用:

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

答案 1 :(得分:3)

三重引号有效。您可以使用'''"""

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

答案 2 :(得分:1)

您可以使用三重引号:

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


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