Проблема не в CRLF, а в том, что eval
предназначен для вычисления одного выражения, а не всей программы.
Вы можете использовать exec
, чтобы выполнить программу из строки, или execfile
, чтобы выполнить ее непосредственно из файла.
Чтобы ответить на ваш исходный вопрос, вы можете не писать CRLF, открыв файл в двоичном режиме: f = open(filename, 'wb')