背景:

      通常在UNIX下面处理文本文件的方法是sed、awk等shell命令,对于处理大文件受CPU,IO等因素影响,对服务器也有一定的压力。关于sed的说明可以看了解sed的工作原理,本文将介绍通过python的mmap模块来实现对大文件的处理,来对比看他们的差异。

说明:

     mmap是一种虚拟内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。关于系统中mmap的理论说明可以看百度百科维基百科说明以及mmap模块的使用说明。

使用:
1,创建:创建并返回一个 mmap 对象m

m=mmap.mmap(fileno, length[, flags[, prot[, access[, offset]]]])

fileno: 文件描述符,可以是file对象的fileno()方法,或者来自os.open(),在调用mmap()之前打开文件,不再需要文件时要关闭。

Python之mmap内存映射模块(大文本处理)
Python之mmap内存映射模块(大文本处理)
os.O_RDONLY   以只读的方式打开 Read only
os.O_WRONLY   以只写的方式打开 Write only
os.O_RDWR     以读写的方式打开 Read and write
os.O_APPEND  以追加的方式打开  
os.O_CREAT   创建并打开一个新文件
os.O_EXCL     os.O_CREAT| os.O_EXCL 如果指定的文件存在,返回错误
os.O_TRUNC    打开一个文件并截断它的长度为零(必须有写权限)
os.O_BINARY          以二进制模式打开文件(不转换)
os.O_NOINHERIT        阻止创建一个共享的文件描述符
os.O_SHORT_LIVED
os.O_TEMPORARY        与O_CREAT一起创建临时文件
os.O_RANDOM         缓存优化,但不限制从磁盘中随机存取
os.O_SEQUENTIAL   缓存优化,但不限制从磁盘中序列存取
os.O_TEXT           以文本的模式打开文件(转换)
Python之mmap内存映射模块(大文本处理)

相关文章:

  • 2021-12-18
  • 2022-12-23
  • 2022-12-23
  • 2021-11-06
  • 2021-11-29
  • 2022-02-21
  • 2022-12-23
猜你喜欢
  • 2021-12-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案