На всех известных мне языках программирования вы не можете поместить кавычку в строку, подобную этой: "this is a quote: "."
Причина этого в том, что первая кавычка открывает строку, вторая затем закрывает ее (!), И затем третий открывает еще одну строку - со следующими двумя проблемами:
- все, что находится между кавычками # 2 и # 3, вероятно, не является допустимым кодом;
- цитата № 3, вероятно, не закрывается.
Существует два распространенных механизма решения этого: удвоение и побег. Экранирование встречается гораздо чаще, и это означает, что вы помещаете специальный символ (обычно \
) перед символами, которые не нужно интерпретировать в их обычном значении. Таким образом, "no, *this* is a quote: \"."
является правильной строкой, где кавычка # 2 не закрывает строку - и символ \
не появляется.
Однако теперь у вас есть другая проблема - как вы на самом деле заставляете escape-символ появляться в строке? Просто: убеги! "This is an escape: \\!"
это то, как вы это делаете: обратная косая черта # 1 - это escape-символ, а обратная косая черта # 2 - escape-символ: он не будет интерпретироваться с его обычной escape-семантикой, а как простой символ обратной косой черты.
Таким образом, ваша строка должна сказать следующее:
source=folder+"\\"+src_file
Кстати: upvote как для @paxdiablo (который входил до моей диатрибы), так и для @Nick (у которого есть правильный Pythonic способ сделать то, что вы хотите сделать)