python 文件指針及文件覆蓋


1、文件純凈模式延伸

r+t:可讀、可寫

w+t:可寫、可讀
with open('b.txt','w+t',encoding='utf-8') as f:
print(f.readable())
print(f.writable())
a+t:可追加寫、可讀

2、控制文件指針移動
方法:f.seek(offset,whence)
offset代表文件指針的偏移量,單位是字節bytes
whence代表參照物,有三個取值
(1)0:參照文件的開頭
(2)1:參照當前文件指針所在的位置
(3)2:參照文件末尾
PS:快速移動到文件末尾f.seek(0,2)
強調:其中whence=1和whence=2只能在b 模式下使用
with open(r'rrf.txt','r+b')as f:
# f.readlines()
# f.seek(6,0) #從開頭移動6個字節
# print(f.readline().decode('UTF-8') )
# print(f.tell() )

# with open(r'rrf.txt', 'r+b')as f:
# f.readline()
# f.seek(9,1) #從當前指針位置移動9個字節
# print(f.readline() .decode('UTF-8') )

with open(r'rrf.txt', 'r+b')as f:
f.seek(-5,2) #指針在末尾,往前讀5個字節
print(f.read() .decode('UTF-8') )
print(f.tell())

3、文件覆蓋(修改)方法
(1)在原文件上進行修改操作,再寫入原文件
優點:只有一個文件
缺點:如果文件過大會占用內存資源
with open('rrf.txt','r',encoding= 'UTF-8')as f :
x=f.read()
x.replace('我的','qqc') #修改內容
with open('rrf.txt','w',encoding= 'UTF-8')as f:
f.write(x )

(2)將原文件內容修改后寫入新的文件,再改名
優點:同一時刻只有一行內容在內存
缺點:有兩個文件
import os

with open('rrf.txt','r',encoding= 'UTF-8')as f,\
 open('bbt','w',encoding='UTF-8' )as f1:
for x in f:
f1.write(x.replace('半倚深秋','qq'))

os.remove('rrf.txt') # 刪除老文件
os.rename('bbt','rrf.txt') #把新文件名字改成老文件名字



















免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM