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