# -*- coding: cp936 -*-
'''使用array模块读取C语言生成的二进制数据文件,并改变字节顺序
1.C语言生成的二进制文件数据必须为同一类型。
2.先运行topython.exe程序,生成topython.dat数据文件
3.再运行此程序,这个程序先将topytho.dat中的数据一integer读入array,并以列表的方式打印出结果
4.再将此数据改变字节顺序,并写入to_big_endian.dat数据文件。
5.再运行topython.exe程序将big-endian数据打印出来(使用be2le转化后)
'''
import array
# 以二进制的方式打开数据文件
fp = file("c:\\topython.dat","rb")
data = array.array('i')
# 从文件中读入数据
data.fromfile(fp,20)
fp.close()
'''
打印数据
array('i', [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361])
'''
print data.tolist()
'''
打印生成的列表
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361]
'''
# 使用python输出big-endian数据
data.byteswap()
print data
fp_be = file('c:\\to_big_endian.dat','wb')
print fp_be
print data.tofile(fp_be)
fp_be.close()
|