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()]
我正在使用 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()]