您可以
array用来读取数据:
import arrayimport osfn = 'data.bin'a = array.array('h')a.fromfile(open(fn, 'rb'), os.path.getsize(fn) // a.itemsize)它比快40个倍
struct.unpack从@samplebias的答案。
如果文件只有20-30M,为什么不读取整个文件,在一次调用中将数字解码unpack,然后通过遍历数组在通道之间分配它们:
data = open('data.bin', 'rb').read()values = struct.unpack('%dh' % len(data)/2, data)del data# iterate over channels, and assign from values using indices/slices快速测试显示,这使
struct.unpack('h', f.read(2))20M文件的速度提高了10倍。


