r+ 可读可写.文件指针会放在文件的开头(若文件不存在报错)
w+ 新建读写
a+ 追加附加读写方式打开.文件指针会放在文件结尾(若文件不存在就新建)
r+与a+的区别:
fd=open("1.txt",'w+')
fd.write('123')
fd=open("1.txt",'r+')
fd.write('456')
fd=open("1.txt",'a+')
fd.write('789')
结果:456789
说明r+进行了覆盖写
"""
test.txt的原始文件如下:
早上好
您好
how are you?
"""
#如果我们在写之前进行了读操作,则会在末尾加入文件
with open('test.txt', mode='r+', encoding='utf-8') as f:
f.read(1)
f.writelines("北京")
结果:
早上好
您好
how are you?北京
这时在文件的末尾加上了‘北京‘两字,与我们读多少没有关系,作用类似与'a+'(以r+模式处理文件容易弄错内容,千万注意)
seek对r+和a+的影响
代码略
以a+的方式打开,无论seek与否都是在文件尾追加写入
而 r+的方式打开,seek是有效的
写二进制文件
with open("test.txt",'wb')
f.write("hello binary\n".encode()) #将字符串转换成二进制