2015-02-13 9 views
7

numpy.savetxt() wydaje się zawsze umieszczać nową linię na końcu plików. Czy istnieje dobry sposób na uniknięcie tego zachowania? Zastąpienie znaku nowej linii czymś innym nie pomaga.numpy.savetxt() zatrzymaj newline na ostatniej linii

Nie sądzę, jest to szczególnie do mojego kodu, ale pisanie jest wykonywana tak (model jest tablica 3D):

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

Wszelkie przykładowy kod? – Marcin

+0

dodano kod pisma – chris

+2

Warto zapytać, co to ma znaczenie ... np. czy masz jakieś istotne przetwarzanie końcowe, które dławi się z powodu nowej linii? – mgilson

Odpowiedz

5

Nie jestem pewien dlaczego to ma znaczenie , lub jeśli istnieje sposób, aby temu zapobiec po numpy stronie (nie widziałem niczego w dokumentach ...), ale prawdopodobnie można szukać w pliku po napisaniu, a następnie skrócić. na przykład

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() 

Uwaga: aby szukać wstecz, bajt wielkości musi być ujemna