我有一个二进制文件,其中一些字符数据卡在一堆int和float中间。我试着用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]
所以现在我有一个数组,其中每个元素都是输入文件中的单个字符。
答案 0 :(得分:2)
你这样做的方式很好。以下是将其转换为字符串的方法。
strbits = np.fromfile(infile, dtype=np.int8, count=73)
a_string = ''.join([chr(item) for item in strbits])