I think that means it's calling exec () on each line individually. The interpreter doesn't realize that print () is part of that loop. Try not sending EOT on the for loop line. If that works, you're ...
for line in sys.stdin.readlines(): fields = line.split("\t") for field in fields[:250]: file1.write(field + '\t') file1.write('\n') It's just taking the first 250 elements of a list and writing them ...