修复将“\n”视为本机 EOL 字符

Fix treating '\n' as native EOL character(s)

(Python 3.5.1)

我正在尝试创建一个 EOL 字符 "normalizer",因为它将获取一个文件并将 EOL 字符更改为用户指定的字符。

问题是我认为 python 将 '\n' 视为本机 EOL 字符。例如,我在使用 CRLF 的 Windows 上,因此它将 '\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 字符替换它?

如果您以二进制模式打开文件(例如,file_out = open('somefile.txt', 'wb')),它只会写出您给它的字节,而不会进行换行转换。您可能还想以二进制模式打开输入文件文件,以确保它在读入时不会进行换行转换。