Возможно ли в гнездо более двух типов котировочных знаков? Я имею в виду, я знаю '
и "
, но что, если мне нужно больше? Допустим ли это:Python: гнездо более двух типов котировок
subprocess.Popen('echo "var1+'hello!'+var2"', shell=True)
Возможно ли в гнездо более двух типов котировочных знаков? Я имею в виду, я знаю '
и "
, но что, если мне нужно больше? Допустим ли это:Python: гнездо более двух типов котировок
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)
Обратите внимание, что в этом случае вы даже можете смешивать сырые строки с не -raw строки:
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)