Python中的自动字符串合并

时间:2018-05-12 01:54:02

标签: python string concatenation

我有来自文件的新字符串(" 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() 

2 个答案:

答案 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')