2012-12-19 [長年日記]
■改行コード
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として解釈しなおせばいいのか?
というあたりで手仕舞いに。追記したいな。