一个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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章