from sys import argv
script, input_file = argv #将argv的列表变量赋值给script和input_file
def print_all(f):#定义一个打印文件的函数
print (f.read())#函数主体,打印从f变量中读取的内容
def rewind(f): #定义一个复读函数
f.seek(0)#函数主体使用seek设置文件(指针)的偏移
def print_a_line(line_count, f): #定义一个只打印一行的函数,并将文件内部指针移向下一行
print (line_count, f.readline())
current_file = open(input_file)#使用open函数打开文件,并赋值给curren_file(文件变量)
print ("First let's print the whole file:\n")
print_all(current_file)#调用函数print_all
print ("Now let's rewind, kind of like a tape.")
rewind(current_file)#调用函数rewind,rewin读取的是文件内部的指针,而不是文件的指针
print ("Let's print three lines:")
current_line = 1#current_line表示行号的变量,首先置1
print_a_line(current_line, current_file)#调用print_a_line函数,下同
current_line = current_line + 1
print_a_line(current_line, current_file)
current_line = current_line + 1
print_a_line(current_line, current_file)
f.seek的意思
定位光标的位置,seek(0)指的是重新定位到开始的位置。(简单的理解为光标的位置,0就是最开始开始,1就是第一个字符……)
如果没有这个函数,那么打印行的时候,就打印不出内容