连接两个txt文件 - 有没有办法在列上合并?

时间:2018-03-21 21:54:41

标签: python concatenation

我有两个文本文件,我能够很好地连接。 f1是标记和计数(2个col),f2是标记和向量(1 + n cols,其中n =向量数)。令牌始终显示在每个文件的第一个列中。

#concatenate these two txt files into a new file
with open('s1_5w10f_vocab.txt')as f1, open('s1_5w10f_vectors.txt') as f2, open('/Users/dlhoffman/5w10f.txt', 'w') as f3:
    for x,y in zip(f1,f2):
        f3.write(x.strip() + " " + y.strip() + '\n')

以下是新连接文件的一行:

new 10950 new -0.272530 -0.001466 -0.283271 0.113374 -0.741011 -0.858208 -0.044069 0.787044 0.550195 -0.429844

我只需要令牌(在上面的例子中为“new”)在行的开头出现一次。有没有办法将它们各自的第一列“连接”这两个文件,以便在新的连接文件中,“mergeed by”列只有一次?

1 个答案:

答案 0 :(得分:1)

如果您的元素由空格分隔,则可以通过以下方式从第二行中删除前导令牌。

with open('s1_5w10f_vocab.txt')as f1, open('s1_5w10f_vectors.txt') as f2, open('/Users/dlhoffman/5w10f.txt', 'w') as f3:
for x,y in zip(f1,f2):
    f3.write(x.strip() + " " + y[y.index(' '):].strip() + '\n')

这会在找到的第一个空格之后创建第二个字符串的子字符串,然后在其上调用strip()。

快乐的编码!