问题描述
我有一个在 C++ 中使用以下代码加载到数组中的文件:
int SomeTable[10000];
int LoadTable()
{
memset(SomeTable, 0, sizeof(SomeTable));
FILE * fin = fopen("SomeFile.dar", "rb");
size_t bytesread = fread(SomeTable, sizeof(SomeTable), 1, fin);
fclose(fin);
}
该文件是10000个整数的二进制代码,因此在C++中可以直接加载到内存中。 在 Python 中是否有一种狂热的方式来做到这一点?
最好的问候, Rok
1楼
让我们使用简短的 C 代码将数组写入文件:
int main ()
{
FILE * pFile;
int a[3] = {1,2,3};
pFile = fopen ( "file.bin" , "wb" );
fwrite (a , 1 , sizeof(a) , pFile );
fclose (pFile);
return 0;
}
二进制文件可以直接加载到
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import array
>>> a=array.array('l') # 'l' is the type code for signed integer
>>> file=open('file.bin','rb')
>>> a.read(file,3)
>>> print a
array('l', [1, 2, 3])
>>> print a[0]
1