Unused exits of the pipes will get closed.
Four rows will get read.
def parent():
pipein, pipeout = os.pipe()
if os.fork() == 0:
os.close(pipein)
child(pipeout)
else:
os.close(pipeout)
counter = 1
pipein = os.fdopen(pipein)
while True:
print('verse {}'.format(counter))
for _ in range(4):
verse = pipein.readline()[:-1]
print(verse)
counter += 1
input("Press RETURN for next verse")
print()
parent()