我有来自文件的新字符串(" new.dat")要与文件合并(" old.dat")。
File : "new.dat"
WBGG 120200Z VRB03KT 9000 FEW015 BKN160 28/25 Q1013 NOSIG
File : "old.dat"
WBGG 120130Z VRB02KT 9000 FEW015 BKN150 27/25 Q1013 NOSIG
WBGG 120100Z VRB02KT 9999 FEW014 BKN150 26/25 Q1012 NOSIG
预期的输出将被覆盖并成为新的(" old.dat")
WBGG 120200Z VRB03KT 9000 FEW015 BKN160 28/25 Q1013 NOSIG
WBGG 120130Z VRB02KT 9000 FEW015 BKN150 27/25 Q1013 NOSIG
WBGG 120100Z VRB02KT 9999 FEW014 BKN150 26/25 Q1012 NOSIG
该过程将继续作为" new.dat"中的新字符串。出现在系统中。当前脚本的结果很奇怪。有人有想法吗?
new=open("new.dat","r")
old=open("old.dat","r")
for line1 in new:
data1=line1
for line2 in old:
data2=line2
newdata=np.array([data1,data2])
## overwrite file and become old file
newfile = open("old.dat", 'w')
newfile.write(newdata)
newfile.close()
答案 0 :(得分:1)
这就是我的意思"坚持numpy":
a = np.loadtxt('old.dat', dtype='object')
b = np.loadtxt('new.dat', dtype='object')
c = np.vstack((b,a))
np.savetxt('old.dat', c, delimiter=" ", fmt="%s")
或者你可以使用pandas:
import pandas as pd
(pd.concat((pd.read_csv(i, sep=' ', header=None) for i in ('new.dat', 'old.dat')))
.to_csv('old.dat', sep=' ', index=False, header=None))
但我可能会使用一些shell脚本。例如Windows(在文件夹中将其键入终端)
(type old.dat new.dat) >> old.dat
答案 1 :(得分:1)
我们可以使用append将新数据写入旧文件,因为新数据将成为下一个传入新数据的旧数据。尝试改变
newfile = open("old.dat", 'w')
要
newfile = open("old.dat", 'a')