Python 按偏移量讀取文件內容

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'
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章