Во-первых, не очевидно, почему вы хотите, чтобы r"\n"
(два байта) появлялся в вашем файле вместо "\n"
(один байт). Для чего предназначен потребитель выходного файла? Использовать ast.evaluate_literal()
в каждом поле ввода? Если ваши фактические данные содержат какие-либо из символов (не ASCII, апострофов, кавычек), то я бы очень осторожно их сериализировал, используя repr()
.
Во-вторых, вы неверно сообщили либо свой код, либо свой вывод (или оба). Код, который вы показываете, на самом деле производит:
"I like to
ride my bike",pumpkin sauce
chicken,wings
В-третьих, о вашем "I like to \n ride my bike".encode("utf-8")
: str_object.encode("utf-8")
абсолютно бессмысленно, если str_object
содержит только байты ASCII - он ничего не делает. В противном случае это вызывает исключение.
В-четвертых, этот комментарий:
Мне больше не нужно вызывать кодирование, теперь, когда я использую raw
строка. Есть много символов Юникода в тексте, который я
используя, поэтому, прежде чем я начал использовать необработанную строку, я использовал кодировать так
что CSV может читать текст Unicode
не имеет никакого смысла - как я уже сказал, "ascii string".encode('utf8')
бессмысленно.
Подумайте о том, чтобы сделать шаг на два назад и объясните, что вы действительно пытаетесь сделать: откуда берутся ваши данные, что в них, и, самое главное, что будет делать процесс, который собирается прочитать файл.