Python中的mmap模块

发布时间:2019-09-18 07:35:13编辑:auto阅读(1809)

    mmap是一种虚拟内存映射文件的方法,即可以将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。


    普通文件被映射到虚拟地址空间后,程序可以像操作内存一样操作文件,可以提高访问效率,适合处理超大文件
    一个简单的例子:

    import mmap
    
    # write a simple example file
    with open("hello.txt", "wb") as f:
        f.write("Hello Python!\n")
    
    with open("hello.txt", "r+b") as f:
        # memory-map the file, size 0 means whole file
        mm = mmap.mmap(f.fileno(), 0)
        # read content via standard file methods
        print mm.readline()  # prints "Hello Python!"
        # read content via slice notation
        print mm[:5]  # prints "Hello"
        # update content using slice notation;
        # note that new content must have same size
        mm[6:] = " world!\n"
        # ... and read again using standard file methods
        mm.seek(0)
        print mm.readline()  # prints "Hello  world!"
        # close the map
        mm.close()


    参考文献:https://docs.python.org/2/library/mmap.html

关键字