Filtering two files with uncommon column
Madhur
madhurrajn at gmail.com
Fri Jan 18 05:08:27 EST 2008
On Jan 18, 2:37 pm, Chris <cwi... at gmail.com> wrote:
> On Jan 18, 11:23 am, Madhur <madhurr... at gmail.com> wrote:
>
>
>
> > I would like to know the best way of generating filter of two files
> > based upon the following condition
>
> > I have two files. Contents of the first file is
>
> > File 1
> > abc def hij
> > asd sss lmn
> > hig pqr mno
>
> > File 2
>
> > jih def asd
> > poi iuu wer
> > wer pqr jjj
>
> > I would like have the output as
> > Output
>
> > File1
> > asd sss lmn
> > File2
> > poi iuu wer
>
> > Basically I want to compare the two files based on second column. If
> > the second
> > column matches on both the files do not print anything, else if there
> > is no matc
> > h in for the second column for first file in second file then print it
> > under Fil
> > e1 header, else if there is no match for the second column for second
> > file in fi
> > rst file print it under File2 header.
>
> > Thankyou
> > Madhur
>
> file1 = open('file1.txt','rb')
> file2 = open('file2.txt','rb')
>
> file1_line = file1.next()
> file2_line = file2.next()
>
> while file1_line and file2_line:
> try:
> f1_col2 = file1_line.split(' ')[1]
> except IndexError:
> print 'Not enough delimiters in line.'
> try:
> f2_col2 = file2_line.split(' ')[2]
> except IndexError:
> print 'Not enough delimiters in line.'
>
> if f1_col2 != f2_col2:
> outfile_data_to_relevant_files()
>
> file1_line = file1.next()
> file2_line = file2.next()
>
> HTH
> Chris
If the files2 is unordered, then the above logic does not work. How to
takle it?
More information about the Python-list
mailing list