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