python 二进制文件的读写

发布时间:2019-07-30 09:43:48编辑:auto阅读(1679)

    对于二进制代码的读取:

    import struct
    with open('valid0_0','rb') as f:#valid0_0二进制文件名
        f.seek(0,2)
        n=f.tell()
        f.seek(0,0)
        buf=f.read(n)
        m=int(n/4)#4是根据你数据的类型和你之前定义的buf长度确定
        print(m,n)
        print(struct.unpack_from(str(m)+'I', buf, 0))
    关于seek的使用

    file.seek()方法标准格式是:seek(offset,whence=0)
    offset:开始的偏移量,也就是代表需要移动偏移的字节数
    whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。默认为0

    tell的使用

    tell()方法返回的文件内的文件读/写指针的当前位置fileObject.tell(offset[, whence])
    代码源址链接

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    # 打开文件
    fo = open("runoob.txt", "rw+")
    print "文件名为: ", fo.name
    
    line = fo.readline()
    print "读取的数据为: %s" % (line)
    
    # 获取当前文件位置
    pos = fo.tell()
    print "当前位置: %d" % (pos)
    
    
    # 关闭文件
    fo.close()
    f.read()的使用

    从文件指针所在的位置,读到文件结尾

关键字