修复将“\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')
),它只会写出您给它的字节,而不会进行换行转换。您可能还想以二进制模式打开输入文件文件,以确保它在读入时不会进行换行转换。
(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')
),它只会写出您给它的字节,而不会进行换行转换。您可能还想以二进制模式打开输入文件文件,以确保它在读入时不会进行换行转换。