match elements from two files, how to write the intended format to a new file
Posted
by
user2489612
on Stack Overflow
See other posts from Stack Overflow
or by user2489612
Published on 2014-05-31T04:07:37Z
Indexed on
2014/05/31
15:27 UTC
Read the original article
Hit count: 266
python-2.7
I am trying to update my text file by matching the first column to another updated file's first column, after match it, it will update the old file. Here is my old file:
Name Chr Pos ind1 in2 in3 ind4
foot 1 5 aa bb cc
ford 3 9 bb cc 00
fake 3 13 dd ee ff
fool 1 5 ee ff gg
fork 1 3 ff gg ee
Here is the new file:
Name Chr Pos
foot 1 5
fool 2 5
fork 2 6
ford 3 9
fake 3 13
The updated file will be like:
Name Chr Pos ind1 in2 in3 ind4
foot 1 5 aa bb cc
fool 2 5 ee ff gg
fork 2 6 ff gg ee
ford 3 9 bb cc 00
fake 3 13 dd ee ff
Here is my code:
#!/usr/bin/env python
import sys
inputfile_1 = sys.argv[1]
inputfile_2 = sys.argv[2]
outputfile = sys.argv[3]
inputfile1 = open(inputfile_1, 'r')
inputfile2 = open(inputfile_2, 'r')
outputfile = open(outputfile, 'w')
ind = inputfile1.readlines()
cm = inputfile2.readlines()[1:]
outputfile.write(ind[0]) #add header
for i in ind:
i = i.split()
for j in cm:
j = j.split()
if j[0] == i[0]:
outputfile.writelines(j[0:3] + i[3:])
inputfile1.close()
inputfile2.close()
outputfile.close()
When I ran it, it returned a single column rather than the format i wanted, any suggestions? Thanks!
© Stack Overflow or respective owner