Python相当于matlab的var = char(fread(fid,100,'char'))';

Python equivalent to matlab's var = char(fread(fid,100,'char'))';

我需要读取 python 中的一个二进制文件,我已经有了它的 Matlab 代码。我正在逐行将 matlab 代码转换为 python 但卡在这个地方,我正在从二进制文件中读取文本数据,但输出不是可读的文本格式。在 python

中寻找以下 Matlab 的等效代码

尝试 python 中的结构模块进行解压,但输出字符串无法直接读入列表

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 作为字符串放入列表中

我认为使用 numpy 函数 fromfile 完全符合您的要求。

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

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