這課的小知識點比較多一點刚照,先貼上代碼
#coding=utf-8
from sys import argv
script, input_file = argv
def print_all(f): #打印文件所有內(nèi)容
print f.read()
def rewind(f): #把指針調(diào)至文件開頭位置
f.seek(0)
def print_a_line(line_count, f): #讀取內(nèi)容的一行刑巧,每一行以‘\n’結(jié)束
print line_count, f.readline(), #輸出行號及這行內(nèi)容
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)
代碼中有三個自定義的函數(shù),其中seek()方法做為了一個小作業(yè)无畔,我上網(wǎng)上查了一下啊楚,把想關(guān)的知識補充上
file.seek(off, whence=0):從文件中移動off個操作標記(文件指針),正往結(jié)束方向移動浑彰,負往開始方向移動恭理。如果設(shè)定了whence參數(shù),就以whence設(shè)定的起始位為準郭变,0代表從頭開始颜价,1代表當前位置,2代表文件最末尾位置诉濒。
我們代碼中用到的是seek(0),就是把指針放在開頭位置周伦,沒有設(shè)置off值
再來看看下面的截圖
QQ截圖20160313201328.png
紅箭頭處的為什么出現(xiàn)空了一行?
再看下面的圖:
QQ截圖20160313201450.png
原因如下:
readline()函數(shù)返回的內(nèi)容中包含文件本來就有的\n,而print在打印時又會添加一個\n未荒,這樣一來就會多出一個空行了专挪,解決方法是在print語句結(jié)尾加一個逗號,這樣print就不會把它的\n打印出來了。