我需要在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')