2013-04-17 29 views
13

Tôi đang đọc một tập tin sử dụng numpy.fromfile:fromfile NumPy (count = -1) trả về mảng các zeros trên Mac OS cho filesize lớn

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

này đọc các tập tin như tôi mong đợi.

nhưng khi tôi đọc toàn bộ file:

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

này mang lại cho tôi một loạt các số không. [0,0,0,...,0,0,0]

tôi mệt mỏi: numpy.count_nonzeros(mat1) mang đến cho 0

size(mat1) cho kích thước chính xác của các tập tin trong byte. Vì vậy, nó làm cho một mảng của kích thước dự kiến, nhưng đầy đủ của nó số không.

+1

Điều này có thể được sao chép trên các tệp nhỏ hơn không? – askewchan

+0

kích thước tệp của tôi là 2,5 GB! Bạn muốn biết nếu đây là một cách tiếp cận tốt. Tôi không muốn đọc nhân vật theo nhân vật. Mất rất nhiều thời gian. – change

+0

Đó là lẻ ... Đối với bất cứ điều gì nó có giá trị, tôi đọc lớn (> 10GB) tập tin nhị phân như là một mảng 'uint8' theo cách này rất thường xuyên. Có thể tập tin được mở để viết ở một nơi khác không? –

Trả lời

1

Điều này dường như bị giảm nhẹ do nâng cấp OS X. Các original issue chỉ ra bởi @MichaelJCox đã được đóng cửa, nhưng một bản vá không bao giờ được áp dụng:

Bế mạc. Việc sửa chữa là nâng cấp lên Mavericks.