Как правильно сделать экранирование кавычек для exec() в python?
Не могу понять как правильно экранировать кавычки для использования в exec().
Есть выражение print "123", дабы выполнить его через exec произвожу замену кавычки на \" и все работает: exec("print \"123\"")
Но для выражения print "\\" замена не работает: exec("print \"\\\"") выдает ошибку.
Я чего-то не вижу или не все так просто? Как корректно преобразовывать строки, чтобы они выполнялись через exec?
Валерий Рябошапко: Да я вот уже через пару минут потерялся в них и нашел проблему на ровном месте :-) Это юзерский однострочный вывод над исполнять, хранить его я не буду ни в каком виде :-D
vilgeforce: то есть Вы считываете строку со стандартного ввода, потом куда-то её передаёте? Тогда зачем вся эта каша с кавычками? Python сам разберётся со всеми символами, кавычки актуальны только для строковых констант в коде.
Валерий Рябошапко: Встроенный в сишный код питон, в сях в итоге формируется строка типа "internal_console.push(\"" + userInput + "\")" и загоняется в PyRun_SimpleString В общем, замена там оказалась нужна и годная модель для нее - exec().