過去の日記

2012-12-19 [長年日記]

改行コード [Python]

CR(0x0D)が入っている行を読み込むとき、CRで改行されてほしくない。

aaaa(CR)bbbb(LF)
cccc(CR)dddd(LF)

のファイルを読む。


#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import codecs
from contextlib import closing

if __name__ == '__main__':
    ct=0
    with closing(open('test.txt', 'r')) as f:
        r = codecs.getreader('utf-8')(f)
        
        for line in r:
            ct+=1
    print ct 

出力は4。
for によるイテレータ呼び出しはCRで区切られている。

では、ということでcodecsを通さない。

#(略)
    ct=0
    with closing(open('test.txt', 'r')) as f:
        #r = codecs.getreader('utf-8')(f)
        
        for line in f:
            ct+=1
    print ct

出力は2。
lineの中に混じるCRを(replaceなんかを使って)排除したあと、utf-8として解釈しなおせばいいのか?

というあたりで手仕舞いに。追記したいな。

阪急電車 [novel]

読んだ。

阪急電車 (幻冬舎文庫)

  • 作者: 有川 浩
  • 出版社/メーカー: 幻冬舎
  • 発売: 2010-08-05
  • ASIN: 4344415132
  • メディア: 文庫
  • amazon.co.jp詳細へ