メインコンテンツに移動
mattz.xii.jp

Main navigation

  • Home
  • YBR125メモ
User account menu
  • ログイン

パンくず

  1. ホーム

2ちゃんねるログビューアを作成する(2)

By mattz , 2008/05/22

今日は先に書いたコードから。「Pythonで日本語を使う」を参考に、Shift_JISで保存されている.datファイルを読み込んで、そのまま標準出力に出す。つもりだった。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Shift_JISのファイルを読み込んで出力する。
'''
import sys
import codecs
fout = codecs.getwriter('shift_jis')(sys.stdout)
log = codecs.open('1111198050.dat', 'r', 'shift_jis') # 実際にはフルパス
for line in log:
        fout.write( line )

とりあえず、コンソールから実行してみたところ、途中までは問題なく出力されるのだが、ある行を処理するところで、エラーメッセージ。が出て中断 してしまう。

UnicodeDecodeError: 'shift_jis' codec can't decode bytes in position 158-159: illegal multibyte sequence

引っかかっている文字は「㌧」。この手の文字は2ちゃんねるでは頻繁に使われるしなぁ。どうしたらいいんだろ?とりあずここ読んで勉強するわ。

追記

codecs.open()のところで、'ignore'オプションをつけてやれば、ファイルの最後までは処理されるようにはなった。けど、解決にはなってない。なってはいないけどここまでの経過として修正版

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Shift_JISのファイルを読み込んで出力する。
'''
import sys
import codecs
fout = codecs.getwriter('shift_jis')(sys.stdout)
log = codecs.open('1111198050.dat', 'r', 'shift_jis', 'ignore' )
print 'Content-Type: text/plain;charset;shift_jis'
print
for line in log:
        fout.write( line )

→実行結果がかつてはリンクされていました。

タグ

  • Python

最近のエントリー

  • フロントブレーキパッドの交換
  • バイクガレージを買った
  • バックミラーの交換
  • 角目化
  • バイクカバーを新調
  • クラッチレバーブーツの硬化対策
  • ハンドルストッパー
  • ジェッティングの見直し
  • バックミラーの防眩化
  • チェーン交換(その後)

ランダム

  • 旅行記 (2009/07/25)
  • 史記 武帝紀 二 (2009/08/06)
  • build 10108 (2008/08/15)
  • 短縮する必要のないところでまでURL短縮するのやめませんか? (2011/03/09)
  • きむらと田村 (2009/09/29)

月別アーカイブ

  • 5月 2010 (4)
  • 4月 2010 (6)
  • 3月 2010 (14)
  • 2月 2010 (10)
  • 1月 2010 (6)
  • 12月 2009 (11)
  • 11月 2009 (10)
  • 10月 2009 (13)
  • 9月 2009 (23)
  • 8月 2009 (12)
  • 7月 2009 (23)
  • 6月 2009 (22)

ページ送り

  • 前ページ
  • 7
  • 次ページ
RSS feed