python3-numpy: добавление к файлу с помощью numpy savetxt

Я пытаюсь добавить данные в файл с помощью функции numble savetxt. Ниже приведен минимальный рабочий пример

#!/usr/bin/env python3
import numpy as np
f=open('asd.dat','a')
for iind in range(4):
    a=np.random.rand(10,10)
    np.savetxt(f,a)
f.close()

Ошибка, которую я получил, это что-то вроде типа ошибки

Файл "/usr/lib/python3/dist-packages/numpy/lib/npyio.py", строка 1073, в файле savetxt fh.write(asbytes (format% tuple (row) + newline)) TypeError: должен быть str, а не байтов

Эта ошибка не возникает в python2, поэтому мне интересно, что может быть проблема. Может кто-нибудь мне помочь?

Ответ 1

Вы должны открыть файл в двоичном режиме.

#!/usr/bin/env python3
import numpy as np        
f=open('asd.dat','ab')
for iind in range(4):
    a=np.random.rand(10,10)
    np.savetxt(f,a)
f.close()

reference: python - Как записать массив numpy в файл csv? - Переполнение стека Как записать массив numpy в файл csv?