【发布时间】:2011-09-11 07:27:07
【问题描述】:
我有一个非常大的文件,我正在尝试使用 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())
【问题讨论】:
-
愚蠢的问题,但是你有文件的读取权限吗?
-
你为什么要通过
os.open而不是内置的open()打开文件?尺寸?对于我使用 re 扫描的约 50 MB 文件(相对于您而言可能很小),在按照 Bobby 合并prot=mmap.PROT_READ后,内置对我来说工作得很好。
标签: python mmap permission-denied