Opening .dat file UnicodeDecodeError: invalid start byte

Opening .dat file UnicodeDecodeError: invalid start byte

我正在使用 Python 将 .dat 文件(您可以找到 here)转换为 csv,以便我稍后在 numpy 或 csv reader 中使用它。

import csv

# read flash.dat to a list of lists
datContent = [i.strip().split() for i in open("./i2019.dat").readlines()]

# write it as a new CSV file
with open("./i2019.csv", "wb") as f:
    writer = csv.writer(f)
    writer.writerows(datContent)

但这会导致错误消息

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8d in position 68: invalid start byte

如有任何帮助,我们将不胜感激!

您的 dat 文件似乎使用了 Shift JIS(Japanese) encoding。 因此,您可以将 shift_jis 作为 encoding 参数传递给 open 函数。

datContent = [i.strip().split() for i in open("./i2019.dat", encoding='shift_jis').readlines()]