1。获取文件名filename,可用对话框,也可以直接手写
2。打开文件,这里中是打开,像看书一样,只是打开书,还没有看里面的内容,可以看,也可以不看
binFile=open(filename,'rb')
3。那就看看吧,binFile现在就是书的名字了。这里我们读入4个字,如果read()将读入整个文件
context=binFile.read(4)
4。读入之后问题来了,context包含四个字(4Bytes),但这四个字是加密的(二进制)。这时要找翻译struct.unpack
realContext=struct.unpack(format,context)
5。format的就是加密规则了,由1,2,4,8个字节组成其他类型,或者其他类型的数组。
a,b,c,d=struct.unpack('4c',context)
读入四个字符
对应格式参考 www.jianshu.com/p/5a985f29fa81
6。打开文件后用完一定要关闭,和看书一个样,看完后要合上,不合上后果自己去想
binFile.close()
7。查找内容,文件内容可以一个一个字的按顺序读出,但如果已经知道内容在什么位置,可以用查找方式读出。
binFile.seek(100)
context=binFile.read(4)
读出100位置后面的4个字,(101,102,103,104)
8。Python还提供也一些高级读写功能,如整行读取等
你是指读入二进制文件吧?\x0d\x0a可以使用numpy.fromfile(),也可以使用open(filename, 'rb'),其中的'b'就是二进制的意思,然后使用文件类型的read方法,读取一些字节,再用struct.unpack()方法来解析二进制。\x0d\x0a第一种方法是一次性读入文件(或文件的前多少个连续字节)到一个数组中,因此,灵活性差。\x0d\x0a第二种方法灵活性很高,可以读取任意位置(使用文件的seek()方法跳跃位置)的二进制数据,再使用struct.unpack()方法来进行各种二进制解析。\x0d\x0a\x0d\x0a提示:二进制文件是不保留存储方式的数据格式,因此,读二进制文件时应该知道二进制文件的存储格式。python按二进制文件格式读写文件时,读写的数据为字符串。根据查询相关资料信息显示,二进制读是把整个文件按照字节进行读取一直到文件结束EOF,不考虑其具体内容。字符串读则是把文件视为一个很长的字符串,需要处理其中的换行符,结束符,转义字符等问题。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)