IOError: [Errno 22] Niepoprawny argument podczas odczytywania / zapisywania dużego testowania

Otrzymuję

IOError: [Errno 22] Invalid argument

kiedy próbuję napisać duży test na dysku za pomocąf.write(), gdzief został otwarty w trybiewb.

Widziałem wielu ludzi, którzy dostali ten błąd podczas korzystania z dysku sieciowego Windows, ale jestem na OSX (10.7, kiedy zadałem to pytanie, ale 10.8 teraz, ze standardowym lokalnym systemem plików HFS +). Używam Pythona 3.2.2 (dzieje się zarówno na binarnym python.org, jak i na instalacji homebrew). Nie widzę tego problemu w systemie Python 2.7.2.

Próbowałem również trybuw+b oparte nato obejście błędu systemu Windows, ale oczywiście to nie pomogło.

Dane pochodzą z dużej tablicy numpy (prawie 4 GB pływaków). Działa dobrze, jeśli ręcznie zapętlę łańcuch i wypiszę go w kawałkach. Ale ponieważ nie mogę tego napisać w jednym przejściu,np.save inp.savez nie - ponieważ po prostu używająf.write(ary.tostring()). Podobny błąd pojawia się, gdy próbuję zapisać go w istniejącym pliku HDF5 za pomocąh5py.

Zauważ, że mam ten sam problem podczas czytania pliku otwartego za pomocąfile(filename, 'rb'): f.read() daje toIOError, podczasf.read(chunk_size) za rozsądnechunk_size Prace.

jakieś pomysły?

questionAnswers(2)

yourAnswerToTheQuestion