在python中读取具有32位精度的整数的txt文件



我需要在python中读取一个具有32位精度的整数值的.txt文件(准确地说是python3(。

该文件是使用以下命令在 MATLAB 中创建的:

fwrite(fileID,array,'*int32')

当我使用以下命令在 MATLAB 中读取相同的文件时:

array = fread(fileID,'*int32')

整数确实是在数组变量中读取的。

但是,当我尝试在Python Jupyter笔记本中读取相同的文件时,我永远无法读取这些值。更具体地说,当我使用:

file = open('path/file.TXT', 'r')
array = file.read()

我收到以下消息:

/

usr/lib/python3.6/codecs.py in decode(self, input, final( 319 # 解码输入(考虑缓冲区(

320 个数据 = 自缓冲区 + 输入

--> 321(结果,消耗(= self._buffer_decode(数据、自我错误、最终(

322 # 保持未解码的输入,直到下一次调用

323 自我缓冲区 = 数据[消耗:]

UnicodeDecodeError:"utf-8"编解码器无法解码位置 1-2 中的字节:无效的延续字节

当我使用 numpy 的加载函数时,会弹出相同的消息:

array = numpy.loadtxt('path/file.TXT', int)

我应该注意,当我尝试使用 Ubuntu 中的任何文本编辑器打开文件时,我看不到值。因此,我只能在 MATLAB 中阅读它。我可以更改在 MATLAB 中创建文件的方式,因为这不是我必须做的事情的一部分。

如果需要,我可以提供文件。提前感谢大家的帮助!

根据您的建议@Impulsleistung,我将 MATLAB 中的文件导出为 .mat 文件,并使用以下代码获取我需要的数据:

data = scipy.io.loadmat('path/data.mat')
array = data.get('array')

最新更新