numpy.savetxt()在最后一行停止换行

chr*_*ris 10 python numpy

numpy.savetxt()似乎总是在文件末尾添加一个新行.有没有一种避免这种行为的好方法?将新行字符替换为其他字符无济于事.

我认为这不是我的代码特有的,但写作正在这样做(模型是一个3D数组):

np.savetxt(modelFile, model, delimiter=",", fmt='%.3f')
Run Code Online (Sandbox Code Playgroud)

mgi*_*son 4

我不太确定它为什么重要,或者是否有办法在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()
Run Code Online (Sandbox Code Playgroud)

注意:要向后搜索,字节大小必须为负数