Monday, April 27, 2009

Python readline example for newbie


Input files:

$ cat file1
Mr A
Mr B
Mrs C
Mr D
Mr E

$ cat file2
890
123
213
123


Output required:
Construct record sets with first line from file1 and next line from file2. i.e. the output should look something like this:

Record 1
Mr A
890

Record 2
Mr B
123

Record 3
Mrs C
213

Record 4
Mr D
123

Record 5
Mr E
--


The python script:

c=1
file1 = open('file1', 'r')
file2 = open('file2', 'r')

for lineA in file1:
print "Record "+str(c)
print lineA,
lineB=file2.readline()
if lineB == '':
print "--"
else:
print lineB
c = c + 1


Related functions and modules:

1) f.readline(): It reads a single line from the file and a newline character (\n) is left at the end of the string.
If f.readline() returns an empty string, it means the end of the file has been reached.
For a blank line it returns '\n', a string containing only a single newline. read more here (section 7.2.1)

2) str function: An example.

>>> c=2
>>> print "value is "+c
Traceback (most recent call last):
File "", line 1, in
TypeError: cannot concatenate 'str' and 'int' objects
>>> print "value is "+str(c)
value is 2

0 Comments: