开发者社区> 问答> 正文

读取二进制数据到可变缓冲区中

你想直接读取二进制数据到一个可变缓冲区中,而不需要做任何的中间复制操作。 或者你想原地修改数据并将它写回到一个文件中去。

展开
收起
哦哦喔 2020-04-17 12:25:25 1033 0
1 条回答
写回答
取消 提交回答
  • 为了读取数据到一个可变数组中,使用文件对象的 readinto() 方法。比如:
    
    import os.path
    
    def read_into_buffer(filename):
        buf = bytearray(os.path.getsize(filename))
        with open(filename, 'rb') as f:
            f.readinto(buf)
        return buf
    下面是一个演示这个函数使用方法的例子:
    
    >>> # Write a sample file
    >>> with open('sample.bin', 'wb') as f:
    ...     f.write(b'Hello World')
    ...
    >>> buf = read_into_buffer('sample.bin')
    >>> buf
    bytearray(b'Hello World')
    >>> buf[0:5] = b'Hello'
    >>> buf
    bytearray(b'Hello World')
    >>> with open('newsample.bin', 'wb') as f:
    ...     f.write(buf)
    ...
    11
    >>>
    
    2020-04-17 12:25:34
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载