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

问题描述 投票:9回答:1

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

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

np.savetxt(modelFile, model, delimiter=",", fmt='%.3f')
python numpy
1个回答
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()

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

© www.soinside.com 2019 - 2024. All rights reserved.