如果保存有典型的分隔符,并没有特殊的换行一维数组,这样可以节省每行一个值:
In [548]: with open('test.txt','wb') as f:
...: np.savetxt(f, np.arange(3), fmt='%5d', delimiter=',')
In [549]: cat test.txt
0
1
2
使用'换行,并将它们放在同一行 - 但结尾的文件没有\n
In [550]: with open('test.txt','wb') as f:
...: np.savetxt(f, np.arange(3), fmt='%5d', delimiter=',', newline='')
In [552]: cat test.txt
0 1 2In [553]:
下一个附加操作将在该行继续。
我可以包括一个b'\n'
写。这需要是一个字节串nl。 (np.savetxt
自由使用np.lib.npyio.asbytes
)。
In [557]: with open('test.txt','ab') as f:
...: f.write(b'\n')
...: np.savetxt(f, np.arange(3), fmt='%5d', delimiter=',', newline='')
In [558]: cat test.txt
0 1 2
0 1 2In [559]:
或者,也许我应该在这样一个savetxt
年底加入\n
写的习惯。
或者,我可以确保我写了一个2d数组到文件,即使我只想写一行。将数组包装在列表中将会有所裨益。想一想savetxt
迭代输入的'行'(第一维),并一次写入一行(格式为fmt
,分隔符和换行符)。
In [559]: with open('test.txt','wb') as f:
...: np.savetxt(f, [np.arange(3)], fmt='%5d', delimiter=',')
In [560]: cat test.txt
0, 1, 2
In [561]: with open('test.txt','ab') as f:
...: np.savetxt(f, [np.arange(4)], fmt='%5d', delimiter=',')
In [562]: cat test.txt
0, 1, 2
0, 1, 2, 3
非常感谢@这个工作,我确实需要使用'\ r \ n'! – layces