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

Python 3.x 在python中读取具有32位精度整数的txt文件,python-3.x,matlab,file,jupyter-notebook,precision,Python 3.x,Matlab,File,Jupyter Notebook,Precision,我需要在python中读取一个具有32位精度的整数值的.txt文件(精确地说是python3) 该文件是使用以下命令在MATLAB中创建的: fwrite(fileID,array,'*int32') 当我使用命令在MATLAB中读取相同的文件时: array = fread(fileID,'*int32') 整数实际上是在数组变量中读取的 然而当我试图在Python Jupyter笔记本中读取同一个文件时,我永远无法读取值。更具体地说,当我使用: file = open('path/fil

我需要在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(self、input、final) 319#解码输入(考虑缓冲区)

320数据=自缓冲+输入

-->321(结果,消耗)=自身缓冲区解码(数据,自身错误,最终)

322#保留未编码的输入直到下一次调用

323 self.buffer=数据[消耗:]

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

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

array = numpy.loadtxt('path/file.TXT', int)
我应该注意,当我试图用Ubuntu中的任何文本编辑器打开文件时,我看不到这些值。因此,我只能在MATLAB中阅读它。我可以改变在MATLAB中创建文件的方式,因为这不是我必须做的部分


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

根据你的建议,我将这些文件从MATLAB导出为.mat文件,并使用以下代码获取所需的数据:

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

更好地导出.mat文件,因为Python中的导入工作非常完美。为什么要使用专有的导出命令?是否可以上载此文件以便我们可以检查它?@pulsleistung感谢您的回答,导出.mat文件中的数据为我带来了好处,如下面所示。如果你想,你可以把它作为一个答案来获得学分,因为我似乎无法引用你。等等,那看起来像一个二进制文件,而不是文本MATLAB不会用你上面给出的指令写ASCII数据
fwrite(fileID,array,'*int32')
。使用此指令时,文件中的数据将始终是二进制的。如果在打开文件时在文件句柄中指定了文件名(例如:
fileID=fopen('something.txt','w');
),则文件名可能会以
something.txt
结尾。但这可能是错误的,您最好从一开始就创建具有适当扩展名的文件:
fileID=fopen('something.bin','w')