網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
一、背景
Python 是一門易于學(xué)習(xí)、功能強(qiáng)大的編程語(yǔ)言。它提供了高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),還能簡(jiǎn)單有效地面向?qū)ο缶幊獭?/p>
Python 優(yōu)雅的語(yǔ)法和動(dòng)態(tài)類型以及解釋型語(yǔ)言的本質(zhì),使它成為多數(shù)平臺(tái)上寫腳本和快速開發(fā)應(yīng)用的理想語(yǔ)言。
下面我們來介紹一下python的文件指針定位相關(guān)知識(shí)。
二、獲取當(dāng)前讀寫位置
在讀寫文件的過程中,如果想知道當(dāng)前文件位置指針的位置,可以通過調(diào)用tell()方法來獲取。
tell()方法返回文件的當(dāng)前位置,即文件位置指針當(dāng)前位置。
其語(yǔ)法格式如下:
文件對(duì)象名.tell()
例:
使用tell()方法獲取文件當(dāng)前的讀寫位置。
with open('testfile.txt','r') as file: #以只讀方式打開名為“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è)位置
如果在讀寫文件的過程中,需要從指定的位置開始讀寫操作,就可以使用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: #新建文件并以讀寫方式打開 file.write('This is a test!') #將字符串輸入到文件 file.seek(10) #指針移到從頭開始的第10個(gè)字符處 con = file.read(4) #讀取4個(gè)字符給con print(con) #輸出
結(jié)果如下。
以文本文件格式打開文件時(shí),seek()方法中的whence參數(shù)取值只能是0,即只允許從文件開始位置計(jì)算偏移量。
若想從當(dāng)前位置或文件末尾位置計(jì)算偏移量,需要使用“b”模式(二進(jìn)制格式)打開文件。
例:
讀取“seek.txt”文件中倒數(shù)第2個(gè)字符。
with open('seek.txt','rb') as file: #新建文件并以讀寫方式打開 file.seek(-2,2) #將文件位置指針定位到倒數(shù)第2個(gè)字符處 con = file.read(1) #讀取1個(gè)字符給con print(con) #輸出
結(jié)果如下。
四、總結(jié)
原文鏈接:https://blog.csdn.net/jiankang66/article/details/126002418
相關(guān)推薦
- 2022-08-05 Redis實(shí)現(xiàn)短信驗(yàn)證碼登錄的示例代碼_Redis
- 2022-05-18 TypeScript中的接口和泛型你了解嗎_基礎(chǔ)知識(shí)
- 2022-11-08 uni.showToast和uni.navigateTo不能同時(shí)執(zhí)行 , 怎么解決
- 2022-09-19 Redis實(shí)現(xiàn)事物以及鎖的方法_Redis
- 2022-12-08 oracle自動(dòng)生成uuid的實(shí)現(xiàn)方法_oracle
- 2022-08-07 GoFrame框架gredis優(yōu)雅的取值和類型轉(zhuǎn)換_Golang
- 2022-08-02 Python+Selenium實(shí)現(xiàn)瀏覽器標(biāo)簽頁(yè)的切換_python
- 2023-07-24 利用keyup事件實(shí)現(xiàn)input框輸入0-1之間的數(shù)字且最多只能保留2位小數(shù)
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支