Linux 上的 Python mmap 'Permission denied'

标签 python mmap permission-denied

我有一个非常大的文件,我正在尝试使用 mmap 打开它,但它给我的权限被拒绝。我尝试了 os.open 的不同标志和模式,但它对我不起作用。

我做错了什么?

>>> import os,mmap
>>> mfd = os.open('BigFile', 0)
>>> mfile = mmap.mmap(mfd, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
mmap.error: [Errno 13] Permission denied
>>> 

(使用内置的 open() 通过 python 文档示例工作,但它似乎在读写模式下都打开了多个文件句柄。我只需要 mmap.mmap 方法是文件号,所以我不认为我需要创建一个 file 对象;因此我尝试使用 os.open())

最佳答案

我认为这是一个标志问题,尝试以只读方式打开:

mfd = os.open('BigFile', os.O_RDONLY)

并且 mmap.mmap 默认尝试映射读/写,所以只映射只读:

mfile = mmap.mmap(mfd, 0, prot=mmap.PROT_READ)

关于Linux 上的 Python mmap 'Permission denied',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6286592/

相关文章:

python - 使用python提取回归系数

c - mmap MAP_SHARED 不工作

linux - 使用 mmap 复制文件

python - dd 命令权限被拒绝 Python

python - PhantomJS 看不到由 AJAX 填充的下拉选项

python - 将 pandas 时区感知的 DateTimeIndex 转换为天真的时间戳,但在特定时区

python - 检查Databricks中是否存在该路径

c - 在最近的 Linux 内核上测试 msync 使用的好方法是什么?

mysql - 无法触摸 `/var/log/mysqld.log' : Permission denied

android - 无法在Android Studio 2.3.3中创建新项目