On 05/14/2010 12:55 PM, James Mills wrote:
file1:
a1 a2
a3 a4
a5 a6
a7 a8

file2:
b1 b2
b3 b4
b5 b6
b7 b8

and I want to join them so the output should look like this:

a1 a2 b1 b2
a3 a4 b3 b4
a5 a6 b5 b6
a7 a8 b7 b8

This is completely untested, but this "should" (tm) work:

from itertools import chain

input1 = open("input1.txt", "r").readlines()
input2 = open("input2.txt", "r").readlines()
open("output.txt", "w").write("".join(chain(input1, input2)))

I think you meant izip() instead of chain() ... the OP wanted to be able to join the two lines together, so I suspect it would look something like

  # OPTIONAL_DELIMITER = " "
  f1 = file("input1.txt")
  f2 = file("input2.txt")
  out = open("output.txt", 'w')
  for left, right in itertools.izip(f1, f2):
    out.write(left.rstrip('\r\n'))
    # out.write(OPTIONAL_DELIMITER)
    out.write(right)
  out.close()

This only works if the two files are the same length, or (if they're of differing lengths) you want the shorter version. The itertools lib also includes an izip_longest() function with optional fill, as of Python2.6 which you could use instead if you need all the lines

-tkc




--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to