使用 numpy 从二进制文件中读取 char 数据
reading char data from binary file with numpy
我有一个二进制文件,其中一些字符数据卡在一堆整数和浮点数的中间。我正在尝试用 numpy 阅读。关于字符数据,我能得到的最远的是:
strbits = np.fromfile(infile,dtype='int8',count=73)
(是的,这是一个 73 个字符的字符串。)
三个问题:我的数据现在存储在 strbits 中没有损坏或截断吗?而且,我现在可以将 strbits 转换为可读的字符串吗?最后,我应该以完全不同的方式来做这件事吗?
更新:
这是可行的方法,但我认为会有更优雅的方法。
strarr = np.zeros(73,dtype='c')
for n in range(73):
strarr[n] = np.fromfile(infile,dtype='c',count=1)[0]
所以现在我有一个数组,其中每个元素都是来自输入文件的单个字符。
你这样做的方式很好。以下是将其转换为字符串的方法。
strbits = np.fromfile(infile, dtype=np.int8, count=73)
a_string = ''.join([chr(item) for item in strbits])
我有一个二进制文件,其中一些字符数据卡在一堆整数和浮点数的中间。我正在尝试用 numpy 阅读。关于字符数据,我能得到的最远的是:
strbits = np.fromfile(infile,dtype='int8',count=73)
(是的,这是一个 73 个字符的字符串。)
三个问题:我的数据现在存储在 strbits 中没有损坏或截断吗?而且,我现在可以将 strbits 转换为可读的字符串吗?最后,我应该以完全不同的方式来做这件事吗?
更新: 这是可行的方法,但我认为会有更优雅的方法。
strarr = np.zeros(73,dtype='c')
for n in range(73):
strarr[n] = np.fromfile(infile,dtype='c',count=1)[0]
所以现在我有一个数组,其中每个元素都是来自输入文件的单个字符。
你这样做的方式很好。以下是将其转换为字符串的方法。
strbits = np.fromfile(infile, dtype=np.int8, count=73)
a_string = ''.join([chr(item) for item in strbits])