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