python 文件操作seek() 和 telll() 自我解釋
file.seek()方法格式: seek(offset,whence=0) 移動文件讀取指針到制定位置
offset:開始的偏移量,也就是代表需要移動偏移的字節數。
whence: 給offset參數一個定義,表示要從哪個位置開始偏移;0代表從文件開頭算起,1代表開始從當前位置開始算起,2代表從文件末尾開始算起。當有換行時,會被換行截斷。 seek()無返回值,故值爲None
tell() : 文科文件的當前位置,即tell是獲取文件指針位置。
readline(n):讀入若干行,n代表讀入的最長字節數。
readlines() :讀入所有行的內容
read讀入所有行的內容
tell() : 返回文件讀取指針的位置
現在有一個xl.txt文檔,內容如下:
AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDD
可以通過open()函數來打開文件,比如:
>>> f = open("C:/Users/jetway/Desktop/xl.txt", "r")
可以利用tell()函數查看在文件中的當前位置,以字節爲單位,比如:
>>> f.tell()
0L
這裏還沒對文件做任何處理,所以在文件的起始處,位置爲0L
接下來就是通過seek()函數,來指定在文件中的位置了。說明,seek()有兩個參數,其中第二個參數只有0,1,2三種,假設第一個參數爲X, 0表示從文件開始處移動到文件的X字節處。比如:
>>> f.seek(8,0)
>>> f.tell()
8L
>>> fs = f.read()
>>> fs
'BBBBBBBBCCCCCCCCDDDDDDDD'
1表示移動到相對於當前位置X字節的地方,比如現在是在第8個字節處:
>>> f.seek(9,1)
>>> f.tell()
17L
>>> fs = f.read()
>>> fs
'CCCCCCCDDDDDDDD'
2表示相對於文件末尾的位置,比如:
>>> f = open("C:/Users/jetway/Desktop/xl.txt", "r")
>>> f.seek(-12, 2)
>>> f.tell()
20L
>>> fs = f.read()
>>> fs
'CCCCDDDDDDDD'
通過seek()函數,我們可以方便的指定在文件中的讀取位置,至於讀取的字節數目麼就要靠read()函數了,只需要加入需要讀取的字節數參數就可以了,比如,我要從第8個字節開始讀取13個字節:
>>> f = open("C:/Users/jetway/Desktop/xl.txt", "r")
>>> f.seek(8,0)
>>> fs = f.read(13)
>>> fs
'BBBBBBBBCCCCC'