Input file: 'file.txt' contains results of a set of students in the following format (i.e. for any student result precedes the student id)
$ cat file.txt
Result:Pass
id:502
Result:Fail
id:909
Result:Pass
id:503
Result:Pass
id:501
Result:Fail
id:802
Required: Print the Ids of the students who have passed the exam.
The python program:
fp = open("passedids.txt","w")
data = open("file.txt").readlines()
for i in range(len(data)):
if data[i].startswith("Result:Pass"):
fp.write(data[i+1].split(":")[1])
Executing it:
$ python printnext.py
$ cat passedids.txt
502
503
501
Another python alternative:
fp=open('file.txt','r')
previous_line = ""
for current_line in fp:
if 'Result:Pass' in previous_line:
print current_line.split(":")[1],
previous_line = current_line
fp.close()
Executing it:
$ python printnext1.py
502
503
501
Related post:
- Print line above pattern in python
0 Comments:
Post a Comment