我越来越
IOError: [Errno 22] Invalid argument
当我尝试使用 将大字节串写入磁盘时f.write()
,f
使用模式打开的位置wb
。
我在网上看到很多人在使用 Windows 网络驱动器时遇到此错误,但我使用的是 OSX(我最初问这个问题时是 10.7,但现在是 10.8,带有标准的 HFS+ 本地文件系统)。我正在使用 Python 3.2.2(同时出现在 python.org 二进制文件和自制软件安装上)。我没有看到系统 Python 2.7.2 存在这个问题。
我还尝试w+b
了基于此 Windows 错误解决方法的模式,但这当然没有帮助。
数据来自一个大型 numpy 数组(几乎 4GB 的浮点数)。如果我手动循环字符串并将其分块写出,它工作正常。但是因为我不能一口气把它全部写完,所以np.save
失败np.savez
了——因为他们只是使用f.write(ary.tostring())
. 当我尝试将其保存到现有的 HDF5 文件中时,出现类似的错误h5py
。
请注意,在读取使用以下命令打开的文件时,我遇到了同样的问题file(filename, 'rb')
:f.read()
给出了这个IOError
,而f.read(chunk_size)
对于合理的chunk_size
工作。
有什么想法吗?