Python,使用CRLF照原样读取CRLF文本文件

Python,使用CRLF照原样读取CRLF文本文件,第1张

Python,使用CRLF照原样读取CRLF文本文件

代替内置

open()
函数,使用
io.open()
。这使您可以更好地控制使用
newline
参数处理换行符的方式:

import iowith io.open(fn, 'rt', newline='') as f:    lines = f.readlines()

设置

newline
为空字符串,将启用通用换行符支持,但返回未翻译的行尾;您仍然可以使用
.readlines()
查找以任何合法行终止符终止的行,但是返回的数据与在文件中找到的数据完全相同:

输入时,如果newline为

None
,则启用通用换行模式。输入中的行可以以
'n'
'r'
或结束,在返回给调用方之前
'rn'
,这些行会被翻译成
'n'
。如果是
''
,则启用通用换行模式,但
行结尾未翻译地返回给呼叫者

强调我的。

这与以二进制模式打开文件不同,在二进制模式下,

.readlines()
文件只会按
n
字符分割。对于具有
r
行尾或混合行尾的文件,这意味着行将无法正确分割。

演示:

>>> import io>>> open('test.txt', 'wb').write('OnenTworThreern')>>> open('test.txt', 'rb').readlines()['Onen', 'TworThreern']>>> io.open('test.txt', 'r', newline='').readlines()[u'Onen', u'Twor', u'Threern']

请注意,

io.open()
还将文件内容解码为unipre值。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5661932.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存