2015-02-13 2 views
7

numpy.savetxt(), кажется, всегда помещает новую строку в конец файлов. Есть ли хороший способ избежать такого поведения? Подстановка нового символа линии на что-то другое не помогает.numpy.savetxt() stop newline в конечной строке

Я не думаю, что это особенно для моего кода, но письмо делается так (модель представляет собой 3D-массив):

np.savetxt(modelFile, model, delimiter=",", fmt='%.3f') 
+0

Любой пример кода? – Marcin

+0

добавлен код записи – chris

+2

Возможно, стоит спросить _why_, это имеет значение ... например. есть ли у вас критическая пост-обработка, которая задыхается из-за новой строки? – mgilson

ответ

5

Я не совсем уверен, почему это имеет значение , или если есть способ предотвратить его на стороне numpy (я ничего не видел в документах ...), но вы, возможно, можете вернуться в файл после записи, а затем усечь. например

NEWLINE_SIZE_IN_BYTES = -1 # -2 on Windows? 
with open('data.dat', 'w') as fout: 
    np.savetxt(fout, model, delimiter=",", fmt='%.3f') 
    fout.seek(NEWLINE_SIZE_IN_BYTES, 2) 
    fout.truncate() 

Примечание: искать в обратном направлении, байт-размер должен быть отрицательным

Смежные вопросы