Filtering two files with uncommon column

Madhur madhurrajn at gmail.com
Fri Jan 18 11:08:27 CET 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