我正在开发一个 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
如何在处理它们之前清理这些行的内容,或者在不让我的脚本崩溃的情况下忽略它们?
谢谢!