python如何獲取文件當(dāng)前位置和定位某個(gè)位置
一、背景
Python 是一門(mén)易于學(xué)習(xí)、功能強(qiáng)大的編程語(yǔ)言。它提供了高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),還能簡(jiǎn)單有效地面向?qū)ο缶幊獭?/p>
Python 優(yōu)雅的語(yǔ)法和動(dòng)態(tài)類(lèi)型以及解釋型語(yǔ)言的本質(zhì),使它成為多數(shù)平臺(tái)上寫(xiě)腳本和快速開(kāi)發(fā)應(yīng)用的理想語(yǔ)言。
下面我們來(lái)介紹一下python的文件指針定位相關(guān)知識(shí)。
二、獲取當(dāng)前讀寫(xiě)位置
在讀寫(xiě)文件的過(guò)程中,如果想知道當(dāng)前文件位置指針的位置,可以通過(guò)調(diào)用tell()方法來(lái)獲取。
tell()方法返回文件的當(dāng)前位置,即文件位置指針當(dāng)前位置。
其語(yǔ)法格式如下:
文件對(duì)象名.tell()
例:
使用tell()方法獲取文件當(dāng)前的讀寫(xiě)位置。
with open('testfile.txt','r') as file: #以只讀方式打開(kāi)名為“testfile.txt”的文件 line = file.read(8) #讀取前8個(gè)字節(jié) print(line) #輸出前8個(gè)字節(jié) p = file.tell() #獲取指針當(dāng)前位置 print('當(dāng)前位置:',p) #輸出當(dāng)前位置 line = file.read(4) #繼續(xù)讀取4個(gè)字節(jié) print(line) #輸出讀取到的數(shù)據(jù) p = file.tell() #獲取指針當(dāng)前位置 print('當(dāng)前位置:',p) #輸出當(dāng)前位置
結(jié)果如下。
三、定位到某個(gè)位置
如果在讀寫(xiě)文件的過(guò)程中,需要從指定的位置開(kāi)始讀寫(xiě)操作,就可以使用seek()方法實(shí)現(xiàn)。
seek()方法用于移動(dòng)文件位置指針到指定位置
其語(yǔ)法格式如下:
文件對(duì)象名.seek(offset[,whence])
例:
創(chuàng)建名為“seek.txt“的文件,輸入“This is a test!”并存放進(jìn)文件中,讀取單詞“test”并輸出到終端。
filename = input('請(qǐng)輸入新建的文件名:') #輸入文件名 with open(filename,'w+') as file: #新建文件并以讀寫(xiě)方式打開(kāi) file.write('This is a test!') #將字符串輸入到文件 file.seek(10) #指針移到從頭開(kāi)始的第10個(gè)字符處 con = file.read(4) #讀取4個(gè)字符給con print(con) #輸出
結(jié)果如下。
以文本文件格式打開(kāi)文件時(shí),seek()方法中的whence參數(shù)取值只能是0,即只允許從文件開(kāi)始位置計(jì)算偏移量。
若想從當(dāng)前位置或文件末尾位置計(jì)算偏移量,需要使用“b”模式(二進(jìn)制格式)打開(kāi)文件。
例:
讀取“seek.txt”文件中倒數(shù)第2個(gè)字符。
with open('seek.txt','rb') as file: #新建文件并以讀寫(xiě)方式打開(kāi) file.seek(-2,2) #將文件位置指針定位到倒數(shù)第2個(gè)字符處 con = file.read(1) #讀取1個(gè)字符給con print(con) #輸出
結(jié)果如下。
四、總結(jié)
以上就是就是關(guān)于Python的文件指針定位的相關(guān)知識(shí),僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 使用openpyxl讀取excel數(shù)據(jù)
這篇文章主要介紹了python 使用openpyxl讀取excel數(shù)據(jù)的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-02-02python?HTTP協(xié)議相關(guān)庫(kù)requests urllib基礎(chǔ)學(xué)習(xí)
這篇文章主要介紹了python?HTTP協(xié)議相關(guān)庫(kù)requests urllib基礎(chǔ)學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06python3.6利用pyinstall打包py為exe的操作實(shí)例
今天小編就為大家分享一篇python3.6利用pyinstall打包py為exe的操作實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Python對(duì)接 xray 和微信實(shí)現(xiàn)自動(dòng)告警
xray 是從長(zhǎng)亭洞鑒核心引擎中提取出的社區(qū)版漏洞掃描神器,支持主動(dòng)、被動(dòng)多種掃描方式,自備盲打平臺(tái)、可以靈活定義 POC,功能豐富,這篇文章主要介紹了對(duì)接 xray 和微信實(shí)現(xiàn)自動(dòng)告警,需要的朋友可以參考下2019-09-09PyQt5重寫(xiě)QComboBox的鼠標(biāo)點(diǎn)擊事件方法
今天小編就為大家分享一篇PyQt5重寫(xiě)QComboBox的鼠標(biāo)點(diǎn)擊事件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06python轉(zhuǎn)換wrf輸出的數(shù)據(jù)為網(wǎng)頁(yè)可視化json格式
這篇文章主要介紹了python轉(zhuǎn)換wrf輸出的數(shù)據(jù)為網(wǎng)頁(yè)可視化json格式,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09