使用np.savetxt()将多个数组保存在一个文件中

时间:2019-09-03 12:24:21

标签: python file numpy

我想在一个文件中保存多个数组,我有一个名为writeOnTxtFile的方法,并且正在循环调用它。

但是当我运行代码时,我的txt文件中只有一个数组

这是我的writeOnTxtFile方法:

def writeOnTxtFile(path):
    image = Image.open(path).convert('RGB')
    arr = np.array(image)
    arr = np.ravel(arr)
    np.savetxt('dataset.txt', arr, fmt='%d', newline=' ', delimiter=',')  

我在这里打电话:

while line:
       writeOnTxtFile(line)
       line = listName.readline()

1 个答案:

答案 0 :(得分:1)

np.savetxt('dataset.txt', arr, fmt='%d', newline=' ', delimiter=',')

只会一遍又一遍地覆盖数组,直到最后一个数组保存在.txt文件中。 而是先使用append和二进制模式打开文件。

f = open("dataset.txt", "ab")

然后使用:

np.savetxt(f, arr, fmt='%d', newline=' ', delimiter=',')

这应将所有数组附加到文件中。您可能想在每个np.savetxt()之后写\ n,以提高可读性:

f.write("\n")

所以所有代码都应该像这样:

def writeOnTxtFile(path):
    image = Image.open(path).convert('RGB')
    arr = np.array(image)
    arr = np.ravel(arr)
    with open("dataset.txt", "ab") as f:
        np.savetxt(f, arr, fmt='%d', newline=' ', delimiter=',')
        f.write("\n")