Python中的文件定位方式
Python文件定位
1. 文件定位
用 Python 的 open()打開一個文件后,都有一個指針指向文件的開始文職,read()函數(shù)讀取一個文件后,指針將后移動相應(yīng)的數(shù)目。
例子1:

2. tell()函數(shù)
tell()函數(shù)可以讓你知道文件內(nèi)的當(dāng)前位置(下次讀寫會發(fā)生在文件開頭這么多字節(jié)之后)。
例子2:

3. seek()函數(shù)
seek ( offest [ , from ] ) 函數(shù)改變當(dāng)前文件的位置,offest 表示要移動的字節(jié)數(shù),from 變量指定開始移動字節(jié)的參考位置。
若 from 參數(shù)被設(shè)置為 0 ,這意味著將文件的開頭作為移動字節(jié)的參考位置;若設(shè)為1,則使用為當(dāng)前的位置作為參考位置;若設(shè)置為2,那么該文件的末尾將作為參考位置。
例子3:

python文件的定位讀寫
上文說到,文件的打開,關(guān)閉,追加,寫入,讀寫。
但是我們沒有實現(xiàn)從指定的位置進(jìn)行讀取啊。我想要1000行后面的東西,但也不能從開頭讀取吧,忒不方便哦,但是,強(qiáng)大的python還是有解決辦法滴。
獲取當(dāng)前讀寫的位置(tell)
#打開一個已經(jīng)存在的文件
f = open('test.txt','r')
read_r = f.read(3)
print('讀取的數(shù)據(jù)是:',read_r)
#查看文件位置
position = f.tell()
print('當(dāng)前文件位置:',position)
read_r = f.read(3)
print('讀取的數(shù)據(jù)是:',read_r)
position = f.tell()
print('當(dāng)前文件位置:',position)
f.close()用**tell()**的方法可以查看當(dāng)前在文件中所讀取數(shù)據(jù)的位置
定位到某個位置seek(offset,from)
- offset:偏移量
- from:方向
- 0:表示文件開頭
- 1:表示當(dāng)前位置
- 2:表示文件末尾
# 打開一個已經(jīng)存在的文件
f = open("test.txt", "r")
str = f.read(30)
print "讀取的數(shù)據(jù)是 : ", str
# 查找當(dāng)前位置
position = f.tell()
print "當(dāng)前文件位置 : ", position
# 重新設(shè)置位置
f.seek(5,0)
# 查找當(dāng)前位置
position = f.tell()
print "當(dāng)前文件位置 : ", position
f.close()在代碼中,讀取了內(nèi)容后,讀出當(dāng)前的位置,讓后在重新設(shè)置位置,從重新設(shè)置的位置 開始在次讀取。
這就是實現(xiàn)了定位去讀寫。
注意:
在文本文件中,沒有使用b模式選項打開的文件,只允許從文件頭開始計算相對位置,從文件尾計算時就會引發(fā)異常。就是說,沒有用二進(jìn)制打開的,只允許從開頭進(jìn)行計算位置。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python啟動應(yīng)用程序和終止應(yīng)用程序的方法
今天小編就為大家分享一篇python啟動應(yīng)用程序和終止應(yīng)用程序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python中input和raw_input的一點區(qū)別
這篇文章主要介紹了Python中input和raw_input的一點區(qū)別,它們都是用來讀取控制臺輸入的函數(shù),需要的朋友可以參考下2014-10-10
詳解tensorflow訓(xùn)練自己的數(shù)據(jù)集實現(xiàn)CNN圖像分類
本篇文章了tensorflow訓(xùn)練自己的數(shù)據(jù)集實現(xiàn)CNN圖像分類,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02
Pytorch抽取網(wǎng)絡(luò)層的Feature Map(Vgg)實例
今天小編就為大家分享一篇Pytorch抽取網(wǎng)絡(luò)層的Feature Map(Vgg)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python中NameError的變量未定義問題的原因及解決方案
NameError是Python編程中常見的錯誤之一,通常表示程序嘗試訪問一個未定義的變量或名稱,這種錯誤對于新手來說尤其常見,本文系統(tǒng)性總結(jié)NameError的常見原因、調(diào)試技巧及解決方案,需要的朋友可以參考下2025-06-06

