2017-07-05 2 views
0

J'essaie d'ouvrir l'image dans le fichier .b, prendre un sous-partie et d'écrire dans un nouveau fichier dans un autre dossier (même étaient mon script python)créer et écrire dans le fichier binaire

ici est mon code :

import numpy as np 

for i in range(11): 
    # open and read : 
    filename='data/img_t'+str(i+700)+'.b' 
    data=np.fromfile(filename, dtype=np.float64, sep="") 
    data=data.reshape([9636,9636]) 
    # take a part : 
    r = 2200 
    c = 2200 
    lenr = data.shape[0]/r 
    lenc = data.shape[1]/c 
    data1=np.array([data[i*r:(i+1)*r,j*c:(j+1)*c] for (i,j) in np.ndindex(lenr,lenc)]).reshape(lenr,lenc,r,c) 
    # write in new file : 
    outfn='img_part_'+str(i+700)+'.b' 
    out_file = open(outfn, "wb") 
    out_file.write(data1[1,1]) 
    out_file.close() 

Mon problème est que créer seulement img_part_703.b ce qui est très étrange ...

J'essaie aussi:

data1[1,1].tofile(outfn, sep="", format="%s") 

mais le même problème ....

Répondre

1

Vous remplacez la variable i dans votre boucle externe avec le i dans cette compréhension de liste interne; Je suppose que cela finit comme 3 après l'itération finale du listcomp, donc vous écrivez toujours au même nom de fichier.