加载跟踪文件时如何修复“ UnicodeDecodeError:'utf-8'”

时间:2019-10-02 07:24:51

标签: python python-3.x utf-8 trace prefetch

我尝试实现基本的跟踪建模器,并且第一件事是加载跟踪(.xz文件),这些跟踪在http://hpca23.cse.tamu.edu/champsim-traces/speccpu/可用

import csv

with open('400.perlbench-41B.champsimtrace.xz', encoding="utf-8") as csvfile:
    csvreader = csv.reader(csvfile, delimiter=",")

    for row in csvreader:
        print(": ".join(row))

我希望加载这些文件,但是显示为UnicodeDecodeError:'utf-8'编解码器无法解码位置0:无效的起始字节的字节0xfd。我需要对这些跟踪进行一些预处理吗?

1 个答案:

答案 0 :(得分:0)

.xz文件是LZMA的无损数据压缩文件,因此您需要像下面的代码一样先解压缩文件。

import lzma

with lzma.open('400.perlbench-41B.champsimtrace.xz') as lzmaFile:
  .
  .
  .
  .
  .

之后,您可以自由处理它。尝试print(lzmaFile.read())