【发布时间】:2013-09-08 02:28:13
【问题描述】:
是否可以嵌套两种以上的引号?我的意思是我知道' 和" 但是如果我需要更多呢?
是否允许:
subprocess.Popen('echo "var1+'hello!'+var2"', shell=True)
【问题讨论】:
是否可以嵌套两种以上的引号?我的意思是我知道' 和" 但是如果我需要更多呢?
是否允许:
subprocess.Popen('echo "var1+'hello!'+var2"', shell=True)
【问题讨论】:
您可以使用三引号来避免嵌套单引号引起的任何问题:
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
【讨论】:
三引号有效。您可以使用''' 或"""
subprocess.Popen('''echo "var1+'hello!'+var2"''', shell=True)
【讨论】:
你可以使用三引号:
subprocess.Popen('''echo "var1+'hello!'+var2"''', shell=True)
subprocess.Popen("""echo "var1+'hello!'+var2\"""", shell=True)
【讨论】: