我必须将System.Array
(1e09 个单项类型的项目) 写入二进制文件。我当然可以用 Array 循环.GetValue()
并将每个 Single 打包在一个 4 字节的结构中,但这非常慢。
在这种情况下是否可以使用标准的 Python 文件 i/o?我试过somefile_write(some_systemarray)
了,但这会导致错误消息。
我主要对一维数组感兴趣,但是非常感谢适用于 nD 数组的答案。
编辑阅读第一条评论后,我尝试了以下代码:
from System import *
from System.IO import *
arr = Array.CreateInstance(Single, 1e8)
b = BinaryWriter(File.Open('test.bin', FileMode.Create))
for i in arr :
b.Write(i)
b.Close()
不幸的是,这需要appr。45 秒。有BinaryWriter.Write(Byte[])
可用的。但是,这只会在可以快速转换System.Array
时Byte[]
加快速度。