ログファイルを 1 行ずつ分析する Python 3 スクリプトを開発しています。分析するログファイルをパラメーターとして受け取り、それを処理します。
parser = argparse.ArgumentParser(description="logfile analysis")
parser.add_argument("logfile", help="log file to analyse")
args = parser.parse_args()
with open(args.logfile, 'r') as f:
for line in f:
(... processing ...)
ただし、ログ ファイルに非常に奇妙な文字が含まれている場合があります。これらの文字をここにコピーして貼り付ける方法さえ知らないので、テキスト エディターからのスクリーンショットを次に示します。
その場合、次の例外があります。
Traceback (most recent call last):
File "loganalysis.py", line 525, in <module>
main()
File "loganalysis.py", line 512, in main
for line in f:
File "/usr/lib/python3.2/codecs.py", line 300, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 2265: invalid start byte
行の内容を処理する前にサニタイズしたり、スクリプトをクラッシュさせずに単に無視したりするにはどうすればよいですか?
ありがとう!