这课的小知识点比较多一点,先贴上代码
#coding=utf-8
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): #读取内容的一行,每一行以‘\n’结束
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)
代码中有三个自定义的函数,其中seek()方法做为了一个小作业,我上网上查了一下,把想关的知识补充上
file.seek(off, whence=0):从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。
我们代码中用到的是seek(0),就是把指针放在开头位置,没有设置off值
再来看看下面的截图
红箭头处的为什么出现空了一行?
再看下面的图:
原因如下:
readline()函数返回的内容中包含文件本来就有的\n,而print在打印时又会添加一个\n,这样一来就会多出一个空行了,解决方法是在print语句结尾加一个逗号,这样print就不会把它的\n打印出来了。