Обновление:
Не видели вашего комментария при добавлении изначально. Ответ в вашем связанном вопросе показывает, что вы были на правильном пути:
Следующие данные добавят ваши данные, как и ожидалось, но без выгрузки "gibberish" (байты). np.savetxt
, очевидно, позаботится о соответствующем форматировании / кодировании, чтобы написанное было читабельно для человека.
with open(some_file, 'ab+') as fo:
np.savetxt(fo, responses)
Оригинал - оставлено здесь, чтобы объяснить, почему не работает подход OP
Ваш комментарий намекает на то, что происходит:
Следующее действительно добавляет, но оно вводит тарабарщину (я предполагаю, что из-за двоичного кода, но без b он говорит мне, что мне нужно ввести строку) -> сopen (sampleData, 'ab +') как fs: fs.write (образцы) с open (responseData, 'ab +') как fr: fr.write (ответы)
Когда вы пытаетесь писать безb
, он жалуется соответствующим образом, потому что вам нужно , чтобы дать ему строку в обычном режиме записи - вы не можете просто написать список / массив (что и есть samples
и responses
). Когда вы используете b
, вы пишете в двоичном / байтовом режиме, поэтому все, что вы передаете write
, преобразуется в байты. Вот что я вижу, если напишу в двоичном режиме следующее:
resp = np.array([1, 2, 4, 5], np.float32)
resp = resp.reshape((resp.size, 1))
np.savetxt(file1, resp)
with open(file2, 'ab+') as fo:
fo.write(resp)
# From Hex view of written file
00 00 80 3F 00 00 00 40 00 00 80 40 00 00 A0 40
, что идентично вызову bytes(...)
в массиве, который я создал:
import binascii
binascii.hexlify(bytes(resp))
# produces:
b'0000803f00000040000080400000a040' -> '00 00 80 3f 00 00 00 40 00 00 80 40 00 00 a0 40'
Итак, вы простоВам нужно отформатировать ваши данные в удобное для str
представление, например, объединить в строку (например):
>>> ', '.join(str(x) for x in resp)
'[1.], [2.], [4.], [5.]'
... но то, как вы отформатируете их, конечно, зависит от ваших требований.