创建和写入二进制文件

时间:2017-07-05 17:33:25

标签: python binaryfiles

我正在尝试在.b文件中打开图片,拿一个子部件并在另一个文件夹中写入一个新文件(同样是我的python脚本)

这是我的代码:

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()

我的问题是它只创建了img_part_703.b这很奇怪......

我也试试:

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

但同样的问题......

1 个答案:

答案 0 :(得分:1)

您正在使用内部列表理解中的i覆盖外部循环中的i变量;我想它在listcomp的最后一次迭代后最终为3,所以你总是写入相同的文件名。