我想在一个文件中保存多个数组,我有一个名为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()
答案 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")