首页/新闻资讯/正文详情

Python将文件映射到内存使用mmap.mmap()函数方式

发布时间:2026/9/27 23:00:12 来源:云帆数科 栏目:资讯中心
Python将文件映射到内存使用mmap.mmap()函数方式
如何将文件映射到内存实际案例1当你在访问某些二进制文件的时候, 你希望把文件映射到内存里面去, 这样一来就可以实现对文件的随机访问, 这些文件可能包括设备文件。2在某些嵌入式设备的场景下, 寄存器会被编址到内存地址空间里面, 所以我们可以选择映射/dev/mem这个设备的某一特定范围, 从而对这些寄存器发起访问操作。3如果一个文件可以被映射到多个进程当中去, 那么这样一来也是能够通过这种技术手段来达成实现进程间进行通信的那个目的的。解决方案在使用标准库里的mmap这个模块时, 你要调用它的mmap()函数, 而这个函数需要一个已经打开了的文件描述符作为它所需的参数去使用。代码演示# 使用dd命令创建大小为1M的每个字节都是0的二进制文件demo.bin~ % dd if/dev/zero ofdemo.bin bs1024 count102410240 records in10240 records out1048576 bytes transferred in 0.008838 secs (118644037 bytes/sec)# 以16进制形式查看这个文件~ % od -x demo.bin0000000 0000 0000 0000 0000 0000 0000 0000 0000*4000000# 接下来对这个文件进行映射import mmapmmap.mmap函数介绍需要注意对于不同的平台对这个函数使用稍有差别。Windows: mmap(fileno, length[, tagname[, access[, offset]]])Unix: mmap(fileno, length[, flags[, prot[, access[, offset]]]])fileno为文件描述符并不是一个文件对象文件描述符是由系统调用的open函数得到的系统调用的open函数在os.open()也可以使用python的open函数offset为指定映射区域必须以页对齐的# b为二进制模式r为读写权限f open(demo.bin, rb)# 得到文件描述符print(f.fileno())# 做映射映射区域长度为0映射整个文件访问权限写mn mmap.mmap(f.fileno(), 0, accessmmap.ACCESS_WRITE)# m为mmap对象类似于数组一样的操作print(type(mn))print(mn[0])print(mn[10:20])# 对文件进行写操作mn[0] 88# 字符串长度和切片长度保持一致mn[4:8] b\xff * 4# 设置offset跳过4个页并且映射8个页mn2 mmap.mmap(f.fileno(), mmap.PAGESIZE * 8, accessmmap.ACCESS_WRITE,offsetmmap.PAGESIZE * 4)# 对切片进行修改mn2[:0x1000] b\xaa * 0x1000修改文件映射内存的内容并查看# 修改映射地址内容# 查看[0]、[4:8]和[:0x1000]内容修改~ % od -x demo.bin0000000 0058 0000 ffff ffff 0000 0000 0000 00000000020 0000 0000 0000 0000 0000 0000 0000 0000*0040000 aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa*0050000 0000 0000 0000 0000 0000 0000 0000 0000*4000000总结上述内容是依照个人的实际体会来整理出来的, 期望能够为大家提供一个借鉴的视角, 同时, 也诚挚地恳请各位观众朋友, 多多地对脚本之家这个平台给予关注与支持。

相关推荐

Java面试必问的JVM调优,这样回答让面试官眼前一亮
Java面试必问的JVM调优,这样回答让面试官眼前一亮

面试官问JVM调优,你张口就是-Xms、-Xmx、-XX:UseG1GC,背得滚瓜烂熟。对方听完,面无表情地在本子上画了个圈。这个圈的意思是:这人背过八股文,但没真调过。JVM调优不是参数默写比赛,是诊断思维和工程判断的较… · 2026/9/27 23:00:12

番禺网站建设培训学校避坑指南:3招从零搭建不踩雷
番禺网站建设培训学校避坑指南:3招从零搭建不踩雷

番禺网站建设培训学校避坑指南:3招从零搭建不踩雷 改个需求建站公司拖一周,这种憋屈事儿谁没经历过?很多在番禺找网站建设培训学校的老板,交完钱才发现,自己连个后台都登不上,更别提从零搭建一个能跑起来的站了。今天不聊虚的,直接拆解那些培训学校里… · 2026/9/27 23:00:06

揭秘WordPress盈利模式:备案不踩坑,选对服务商哪家好
揭秘WordPress盈利模式:备案不踩坑,选对服务商哪家好

揭秘WordPress盈利模式:备案不踩坑,选对服务商哪家好 很多人盯着WordPress的开源免费属性,却忽略了背后隐藏的合规雷区。最让人头疼的,莫过于备案流程一头雾水,明明代码写好了,域名也解析了,网站却因为没备案直接打不开,流量全丢。… · 2026/9/27 23:00:00

IT66220 HDMI 1.4 TX集成实战:从规格书到点亮屏的完整路径
IT66220 HDMI 1.4 TX集成实战:从规格书到点亮屏的完整路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:32:35

PyQt+FaceNet人脸识别考勤系统实战指南
PyQt+FaceNet人脸识别考勤系统实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:32:35

Windows开机自动启动Chrome并全屏的系统级实现方案
Windows开机自动启动Chrome并全屏的系统级实现方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:32:35

黄岛因特网站建设公司5大坑点与省钱对比评测
黄岛因特网站建设公司5大坑点与省钱对比评测

黄岛因特网站建设公司5大坑点与省钱对比评测 找建站公司最怕什么?不是技术不行,而是被坑高价。很多老板在青岛黄岛这边,一问报价就晕,三千五的做和五千的做,到底差在哪?今天咱不整虚的,直接拿 黄岛因特网站建设公司 做个 对比评测… · 2026/9/27 23:32:29

网站博客模板多少钱?被黑挂马后,这套SEO修复方案救活百万流量
网站博客模板多少钱?被黑挂马后,这套SEO修复方案救活百万流量

网站博客模板多少钱?被黑挂马后,这套SEO修复方案救活百万流量 网站被黑挂马,后台突然多出几百条垃圾外链,首页打开直接跳转到博彩页面,这时候你心里肯定在骂娘,更在算账:请安全公司清毒要多少钱?重新搭建网站又要多少钱?别急着哭穷,先看看你的【… · 2026/9/27 23:32:23

SE与PM的本质区别:系统可信度建筑师 vs 价值交付操盘手
SE与PM的本质区别:系统可信度建筑师 vs 价值交付操盘手

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 23:32:17

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码