我有以下代码从二进制文件中获取字符串。
value = struct.unpack ('<16s', f.read(16))[0]
print 'dispvdn =' + str(value)
这工作正常,我得到了预期的价值。但是,当我打印一个6个字符的值时,我看到整个字符串长度为16,就像这样。
dispvdn = 40010.◦◦◦◦◦◦◦◦◦
我想知道这是否缺少\ 0。什么是正确终止或修剪它的最佳方法?
答案 0 :(得分:0)
这是我最终做的事情,它适用于我需要的东西。我创建了以下小方法。
add_argument('inFile', ...
这允许以下工作从较大的二进制读取中获取字符串。
def finalizeString(data):
len = data.index('\0')
return data[0:len]
我知道我可以压缩和清理它但我想分享所以这标记为已关闭。
答案 1 :(得分:0)
你可以这样做(类似于你自己的回答):
value = struct.unpack ('<16s', f.read(16))[0]
truncated = value.split('\0')[0] ## split and take the first substring
print 'dispvdn =' + truncated