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。
我需要读取 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。