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?