2012-10-05 107 views
1

我尝试的mmap像这样的文件:ValueError异常的MMAP - Python的

f= open('file.txt', 'r') 
data= mmap.mmap(f.fileno(), 0) 

,但我得到:

data= mmap.mmap(f.fileno(), 0) 
ValueError: mmap offset is greater than file size 

寻找在此之后,我仍然无法找出什么是错误和奇怪的是,这是半小时前的工作!任何帮助?

+2

检查您的文件是否为空? –

+0

@RohitJain你说得对。正与这么多文件工作没有注意到这一点。谢谢 – MinaHany

回答

4

我从我的意见提出这个,因为它是有帮助的OP ..

你需要检查你的文件是否为空.. mmap.mmap抛出异常,如果参数的文件空..

检查文件 - >http://docs.python.org/library/mmap.html

+0

看起来像文件被覆盖,并成为空白。谢谢。 – MinaHany

+0

@MinaHany ..不客气.. :) –

0

我当使用模式=“R”尝试读取从首次一个文件MEMMAP(作为排序的方式在跑这个错误宣布t的那部分他的文件是一个memmap)。在这种情况下,numpy会尝试从文件读取数据,实现文件不够长,并尝试扩展文件,以便新的memmap可以坐在那里。我花了一段时间才意识到numpy不能在没有写权限的情况下以这种方式扩展文件。