如果保存有典型的分隔符,並沒有特殊的換行一維數組,這樣可以節省每行一個值:
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