9

2 種類以上の引用符を入れ子にすることはできますか? 私は知っているという意味ですが'"さらに必要な場合はどうすればよいですか? これは許可されていますか:

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

3 に答える 3

14

ネストされた重引用符に関するあらゆる種類の問題を回避するために、三重引用符を使用できます。

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
于 2013-09-04T14:17:38.560 に答える
5

三重引用符が機能します。またはのいずれ'''かを使用できます"""

subprocess.Popen('''echo "var1+'hello!'+var2"''', shell=True)
于 2013-09-04T14:17:27.163 に答える
1

三重引用符を使用できます。

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


subprocess.Popen("""echo "var1+'hello!'+var2\"""", shell=True)
于 2013-09-04T14:20:32.507 に答える