附加练习:
1. 在每一行上方添加注释解释它的作用。
2. 每次 print_a_line 运行的时候,你都在传入一个 current_line 变量。写出每一次调用函数的时 候 current_line 等于什么,然后找出它是如何变成 print_a_line 里面的 line_count 的。
4. 在网上搜搜 seek 这个函数的作用。试着输入 pydoc file ,看看你能否从这里看明白。然后试着 输入 pydoc file.seek 再看看 seek 是用来干嘛的。
5. 搜一下简化符号 += ,然后用 += 重新写这个脚本。
from sys import argv
#传入参数
argv = input()
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,'r',encoding='utf-8')
print("首先让我们打印整个文件:\n")
#调用print_all函数
print_all(current_file)
#调用rewind将文件位置设定为开头
print("现在将读取位置设为开头")
rewind(current_file)
print("打印三行")
#调用print_a_line函数按行输出
current_line = 1
print_a_line(current_line, current_file)
#current_lin = current_lin+1相当于current_line += 1
current_line += 1
print_a_line(current_line, current_file)
current_line += 1
print_a_line(current_line, current_file)
输出为:
seek
file.seek(offset[, whence])
-
offset -- 开始的偏移量,也就是代表需要移动偏移的字节数
-
whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。