(Python 3.5.1)

Я пытаюсь сделать «нормализатор» символа EOL, так как он возьмет файл и изменит символы EOL на те, которые указывает пользователь.

Проблема в том, что я думаю, что python обрабатывает '\ n' как собственные символы EOL. Например, я использую Windows, которая использует CRLF, поэтому он записывает '\ n' как '\ r \ n' в файл. (Я использовал HxD, чтобы подтвердить это)

Вот мой код:

for line in file_in:
    line = line.rstrip("\r\n") #Strip EOL chars
    line += "\n" #Add normalized EOL char
    file_out.write(line)

Есть ли способ заставить python принимать '\ n' как LF вместо замены его собственными символами EOL?

notsign

Ответов: 1

Ответы (1)

Если вы откроете файл в двоичном режиме (например, file_out = open ('somefile.txt', 'wb')), он запишет только те байты, которые вы ему даете, без перевода новой строки перевод. Вероятно, вы также захотите открыть файл входного файла в двоичном режиме, чтобы убедиться, что он не выполняет перевод новой строки при его чтении.

2022 WebDevInsider