• The mmap module


    The mmap module

    The mmap module

    (New in 2.0) This module provides an interface to the operating system’s memory mapping functions. The mapped region behaves pretty much like a string object, but data is read directly from the file.

    Example: Using the mmap module
    # File: mmap-example-1.py
    
    import mmap
    import os
    
    filename = "samples/sample.txt"
    
    file = open(filename, "r+")
    size = os.path.getsize(filename)
    
    data = mmap.mmap(file.fileno(), size)
    
    # basics
    print data
    print len(data), size
    
    # use slicing to read from the file
    print repr(data[:10]), repr(data[:10])
    
    # or use the standard file interface
    print repr(data.read(10)), repr(data.read(10))
    
    
    $ python mmap-example-1.py
    <mmap object at 008A2A10>
    302 302
    'We will pe' 'We will pe'
    'We will pe' 'rhaps even'
    

    Under Windows, the file must currently be opened for both reading and writing (r+, or w+), or the mmap call will fail.

    Memory mapped regions can be used instead of ordinary strings in many places, including regular expressions and many string operations:

    Example: Using string functions and regular expressions on a mapped region
    # File: mmap-example-2.py
    
    import mmap
    import os, string, re
    
    def mapfile(filename):
        file = open(filename, "r+")
        size = os.path.getsize(filename)
        return mmap.mmap(file.fileno(), size)
    
    data = mapfile("samples/sample.txt")
    
    # search
    index = data.find("small")
    print index, repr(data[index-5:index+15])
    
    # regular expressions work too!
    m = re.search("small", data)
    print m.start(), m.group()
    
    
    $ python mmap-example-2.py
    43 'only small1512modules '
    43 small
  • 相关阅读:
    举例一个IO多路复用的C/S例子
    简单介绍协程
    生产者消费者模型
    多进程介绍
    有关多线程(同步锁,递归锁,同步对象,信号量)
    threading多线程模块
    开发一个支持多用户在线的FTP程序
    NTP时间服务器与客户端
    EF之增删改查
    返回新插入的数据的主键ID
  • 原文地址:https://www.cnblogs.com/lexus/p/3325524.html
Copyright © 2020-2023  润新知