Python 3.5.1 で文字コード指定してテキストファイルを読み込んだ際のメモ
codecs
を使うと良い様子
# -*- conding: utf-8 -*- import codecs import os file = '.{}UTF8.txt'.format(os.path.sep) f = codecs.open(file, 'r', 'utf-8') for lineno, line in enumerate(f, start=1): print(lineno, ':', line.rstrip()) f.close()
または
# -*- conding: utf-8 -*- import codecs import os file = '.{}UTF8.txt'.format(os.path.sep) with codecs.open(file, 'r', 'utf-8') as f: for lineno, line in enumerate(f, start=1): print(lineno, ':', line.rstrip())
など
codecs.open()
の第三引数に'utf-8'
を指定してみたところ- 他、
lineno
で行番号を出力 - 他、
''.rstrip()
で行末の改行を除去
出力例:
1 : これは1行目 2 : 2行目 3 : 3行目の文章 4 : 4行目
場合によっては、
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
などで標準出力の文字コードも変える。
以前試した別記事:
行番号 lineno
についてはこちらを参考にしました: