python - 加载跟踪文件时如何修复“UnicodeDecodeError:'utf-8'”
问题描述
我尝试实现一个基本的跟踪建模器,第一件事是加载跟踪(.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' codec can't decode byte 0xfd in position 0: invalid start byte。我需要对这些痕迹做一些预处理吗?
解决方案
.xz 文件是 LZMA 的无损数据压缩文件,因此您需要先解压缩文件,如下面的代码。
import lzma
with lzma.open('400.perlbench-41B.champsimtrace.xz') as lzmaFile:
.
.
.
.
.
之后,您可以自由处理它。试试print(lzmaFile.read())
。
推荐阅读
- jenkins - 如何在 jenkins 管道中并行运行两个分支代码?
- java - RestEasy 406 不可接受
- python - 如何将 (np.busday_count) 与 pandas.core.series.Series 一起使用
- html - 表格不会在该部分中正确流动,而是会从其中流出
- python - 使用 Python 将 WGS-84 编码的字符串转换为纬度和经度
- powershell - PowerShell Get-PnPListItem 不返回所有字段
- jenkins - 我在哪里可以获得 Jenkins 参数化构建中所有内置参数的列表?
- c# - 检查远程firebird备份文件是否存在
- python - 如何从 JSON 列表创建 padas.DataFrame
- javascript - 从我的自定义应用程序调用 azure search api 时,在 Microsoft Edge 浏览器中出现如下所示的 CORS 错误