2010-07-26 7 views
1

I possède un fichier en langage C++ je charge dans un tableau en utilisant dessous code:c Charge ++ fichier de mémoire en python


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); 
} 

Le fichier est un code binaire de 10000 entiers, donc en C++ il pourrait être directement chargé dans la mémoire . Existe-t-il une façon de faire fansy en Python?

meilleures salutations, Rok

+2

Comment lire des fichiers. http://docs.python.org/tutorial/inputoutput.html – DumbCoder

+0

http://stackoverflow.com/questions/874017/python-load-words-from-file-into-a-set – DumbCoder

Répondre

1

Écrivons un tableau dans un fichier en utilisant un code court 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; 
} 

Le fichier binaire peut être chargé directement dans un tableau de python

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