Python中的文件定位方式
Python文件定位
1. 文件定位
用 Python 的 open()打開一個文件后,都有一個指針指向文件的開始文職,read()函數讀取一個文件后,指針將后移動相應的數目。
例子1:
2. tell()函數
tell()函數可以讓你知道文件內的當前位置(下次讀寫會發(fā)生在文件開頭這么多字節(jié)之后)。
例子2:
3. seek()函數
seek ( offest [ , from ] ) 函數改變當前文件的位置,offest 表示要移動的字節(jié)數,from 變量指定開始移動字節(jié)的參考位置。
若 from 參數被設置為 0 ,這意味著將文件的開頭作為移動字節(jié)的參考位置;若設為1,則使用為當前的位置作為參考位置;若設置為2,那么該文件的末尾將作為參考位置。
例子3:
python文件的定位讀寫
上文說到,文件的打開,關閉,追加,寫入,讀寫。
但是我們沒有實現從指定的位置進行讀取啊。我想要1000行后面的東西,但也不能從開頭讀取吧,忒不方便哦,但是,強大的python還是有解決辦法滴。
獲取當前讀寫的位置(tell)
#打開一個已經存在的文件 f = open('test.txt','r') read_r = f.read(3) print('讀取的數據是:',read_r) #查看文件位置 position = f.tell() print('當前文件位置:',position) read_r = f.read(3) print('讀取的數據是:',read_r) position = f.tell() print('當前文件位置:',position) f.close()
用**tell()**的方法可以查看當前在文件中所讀取數據的位置
定位到某個位置seek(offset,from)
- offset:偏移量
- from:方向
- 0:表示文件開頭
- 1:表示當前位置
- 2:表示文件末尾
# 打開一個已經存在的文件 f = open("test.txt", "r") str = f.read(30) print "讀取的數據是 : ", str # 查找當前位置 position = f.tell() print "當前文件位置 : ", position # 重新設置位置 f.seek(5,0) # 查找當前位置 position = f.tell() print "當前文件位置 : ", position f.close()
在代碼中,讀取了內容后,讀出當前的位置,讓后在重新設置位置,從重新設置的位置 開始在次讀取。
這就是實現了定位去讀寫。
注意:
在文本文件中,沒有使用b模式選項打開的文件,只允許從文件頭開始計算相對位置,從文件尾計算時就會引發(fā)異常。就是說,沒有用二進制打開的,只允許從開頭進行計算位置。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python實戰(zhàn)之markdown轉pdf(包含公式轉換)
由于我們markdown編輯器比較特殊,不是很方便瀏覽,如果轉換成pdf的話,就不需要可以的去安裝各種編輯器才可以看了。所以本文將介紹如何通過Python實現md轉pdf或者是docx,需要的朋友可以參考一下2021-12-12Python入門教程(四十一)Python的NumPy數組索引
這篇文章主要介紹了Python入門教程(四十一)Python的NumPy數組索引,數組索引是指使用方括號([])來索引數組值,numpy提供了比常規(guī)的python序列更多的索引工具,除了按整數和切片索引之外,數組可以由整數數組索引、布爾索引及花式索引,需要的朋友可以參考下2023-05-05