メインコンテンツに移動
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/12/14)
  • キーボードを新調してみた (2010/03/08)
  • Twitterによって残念なことになるブログがある理由 (2009/10/24)
  • あけましておめでとうございます (2016/02/07)
  • 史記 武帝紀 7 (2012/03/28)

月別アーカイブ

  • 6月 2025 (54)
  • 12月 2024 (1)
  • 11月 2023 (3)
  • 10月 2023 (1)
  • 12月 2022 (1)
  • 4月 2022 (1)
  • 12月 2021 (1)
  • 2月 2021 (1)
  • 11月 2020 (1)
  • 7月 2020 (1)
  • 12月 2019 (1)
  • 7月 2019 (2)

ページ送り

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