我正在尝试使用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 docs示例工作,但似乎在读写模式下都打开了文件的多个句柄。mmap.mmap
方法只需要文件号,所以我不会假设我需要创建一个file
对象;因此,我尝试使用os.open()
) 最佳答案
我认为这是一个标志问题,请尝试以只读方式打开:
mfd = os.open('BigFile', os.O_RDONLY)
和mmap.mmap默认情况下会尝试映射读/写,因此仅映射只读:
mfile = mmap.mmap(mfd, 0, prot=mmap.PROT_READ)
关于python - Linux上的Python mmap 'Permission denied',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6286592/