[SciPy-user] partially reading a file...
Travis E. Oliphant
oliphant at enthought.com
Wed Aug 6 13:43:50 EDT 2008
fred wrote:
> Travis E. Oliphant a écrit :
>
>> fred wrote:
>>
>>> Hi,
>>>
>>> Let's say I want to read a (binary) file which contains a nx*ny*nz array.
>>>
>>> Is it possible to read a "sub-array" from this file, ie each block of
>>> (nx/4, ny/4, nz/4) for instance, without loading the whole file ?
>>>
>>>
>> An easy way to do this which forces the operating system to do the work
>> of partial loading is to use a memory mapped file as the source of the
>> array (i.e. a memmap array).
>>
>> Then, selecting out a block is as simple as slicing.
>>
> Maybe I had to mention this: the aim is to cut in several files a
> "large" data file, _bigger_ than total available memory amount.
>
Absolutely memory mapping still applies --- it's a perfect application
for it. But, you will probably need a 64-bit system.
Memory mapping is how the OS handles "virtual memory" which uses disk
space to increase main memory. You are just using that idea directly
with a memory mapped file.
-Travis
More information about the SciPy-User
mailing list