2013-04-17 8 views
13

Sto leggendo un file usando numpy.fromfile:fromfile NumPy (count = -1) restituisce serie di zeri su Mac OS per enorme dimensione del file

mat1=numpy.fromfile("path/to/file", numpy.uint8, 40000, "") 

questa legge il file come mi aspetto.

ma quando ho letto l'intero file:

mat1=numpy.fromfile("path/to/file", numpy.uint8, -1, "") 

questo mi dà una serie di zeri. [0,0,0,...,0,0,0]

mi stanco: numpy.count_nonzeros(mat1) che dà 0

size(mat1) dà l'esatta dimensione del file in byte. Quindi crea una matrice delle dimensioni previste, ma è piena di zeri.

+1

Può essere riprodotto su file più piccoli? – askewchan

+0

la mia dimensione del file è di 2.5 GB! Vuoi sapere se questo è un buon approccio. Non voglio leggere carattere per carattere. Ci vuole un sacco di tempo. – change

+0

Questo è strano ... Per quanto valga la pena, leggo in file binari di grandi dimensioni (> 10 GB) come un array 'uint8's in questo modo molto spesso. È possibile che il file sia aperto per scrivere da qualche altra parte? –

risposta

1

Questo apparentemente è stato mitigato dagli aggiornamenti di OS X. Il numero original issue indicato da @MichaelJCox è stato chiuso, ma non è mai stata applicata una patch:

Chiusura. La correzione è l'aggiornamento a Mavericks.