quqinchao

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\') #把新文件名字改成老文件名字


















分类:

技术点:

相关文章: