This code doesn't work as Zed Shaw says it should in his book. After the rewind the first call to print does it's job, sort of, (random characters before the first line of text, and spacing seems strange) but then the only thing that prints on lines two and three are the line numbers...no text follows. Here's the code:
from sys import argv script, input_file = argv def print_all(f): print (f.read()) def rewind(f): f.seek(0) def print_a_line(line_count, f): print (line_count, f.readline()) current_file = open(input_file) print ("First let's print the whole file:\n") print_all (current_file) print ("Now let's rewind, kind of like a tape.") rewind (current_file) print ("Let's print three lines:") current_line = 1 print_a_line (current_line, current_file) current_line = current_line + 1 print_a_line (current_line, current_file) current_line = current_line +1 print_a_line(current_line, current_file)