tMC tMC - 4 years ago 713
Python Question

Python mmap 'Permission denied' on Linux

I have a really large file I'm trying to open with mmap and its giving me permission denied. I've tried different flags and modes to the

os.open
but its just not working for me.

What am I doing wrong?

>>> 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
>>>


(using the built in
open()
works via the python docs example, but it seems to open more than one handle to the file both in read & write mode. All i need for the
mmap.mmap
method is the file number, so I wouldn't assume i need to create a
file
object; hence my attempt at using
os.open()
)

Answer Source

I think its a flags issue, try opening as read only:

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

and mmap.mmap by default tries to map read/write, so just map read only:

mfile = mmap.mmap(mfd, 0, prot=mmap.PROT_READ)
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download