Python等同于matlab的var = char(fread(fid,100,'char'))';

时间:2019-07-31 12:32:39

标签: python-3.x string matlab filereader binaryfiles

我需要在python中读取一个二进制文件,对此我已经有一个Matlab代码。我正在逐行将matlab代码转换为python,但停留在此位置,我从二进制文件读取文本数据,但输出的格式不是可读的。在python中寻找Matlab的等效代码

尝试使用python中的struct模块解压缩,但无法立即将输出字符串读入列表中

Matlab代码:

var = char(fread(fid,100,'char'))';

我尝试过的Python代码:

tmp = f.read(100)
abc, = struct.unpack('100c',tmp)

但是'abc'的值不是常规文本字符串,而是类似于b'/ val1 val2 val3 val4'

我需要将val1,val2,val3,val4作为字符串放入列表中

1 个答案:

答案 0 :(得分:0)

我认为使用numpy函数fromfile确实可以满足您的需求。

import numpy as np
data = np.fromfile(filename, dtype=np.uint8, count=100,sep='')

count告诉您要读取多少字节,空的sep将文件视为二进制文件。有关详细信息,请参见the documentation