一个python处理dos和unix格式文本的换行的问题

看到以前limod写的一篇文章,

说python读纯文本已经将\r,\r\n,\n全部用\n来处理了。但我的系统中好像并没有这样。
我在ubuntu下面,Python 2.6.4

读写方式如下:
>>> data = open('dosfile.txt','r').read()
>>> print data
结果看到换行还是\r\n.
这样,我处理文本时如果想通过\n\n(两个换行)来作为分段的话,对dos格式的无效。
items = data.split('\n\n')就并不能达到我想分的段。

lines = data.splitline()倒能正确处理\r\n为\n,分行正确.但这不是我想要的。

执行:
if hasattr(open, 'newlines'):
print 'We have universal newline support'
我的没打印,说明没有设置open的
universal newline support
但不知在哪里设。

所以我用
open('dostext.txt','rU').read()解决了该问题。
在打开参数中,'rb'肯定是不会转的,'rU'是会转的。U不能和+,w等mode参数配。

==========
参考:
http://en.wikipedia.org/wiki/Newline
http://www.python.org/dev/peps/pep-0278/
http://bugs.python.org/issue6759
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值