# __author__:Nzkalhbxx
# __date__:2017/10/17
# 文件对象打开的另一种方式:whth语法
print("r+".center(33, "-"))
# 由运行结果可知, r+模式下文件可读可写, 但是进行写操作时并不会清空内容, 而且只能从文件的末尾写入数据
num = 1
with open("citys.txt", "r+", encoding="utf8") as fileReadPlus:
for line in fileReadPlus:
print(line.strip())
if num == 3:
fileReadPlus.write("i am readPlus")
num += 1
![](https://img.haomeiwen.com/i3250328/af063f535df28ded.png)
运行结果
![](https://img.haomeiwen.com/i3250328/9fc62bd14f325614.png)
文件r+后
print("w+".center(33, "-"))
# 有运行结果可知, 在w+模式下, 会首先对文件进行清空操作, write()和read()操作的指针是同一个
with open("citys.txt", "w+", encoding="utf8") as fileWritePluse:
print(fileWritePluse.tell())
print(fileWritePluse.read())
fileWritePluse.write("i am writePlus")
print(fileWritePluse.tell())
fileWritePluse.seek(0)
print(fileWritePluse.read())
![](https://img.haomeiwen.com/i3250328/0ea3d71a39a4eee3.png)
运行结果
# 由结果可知, 对文件进行a和a+操作时, 文件对象一经创建, 文件指针便指向文件数据末尾, 无论当前文件指针指向哪里,
# 当进行write()操作时, 文件指针自动跳到文件末尾, 之后进行写操作
with open("citys.txt", "a+", encoding="utf8") as fileAppendPlus:
print(fileAppendPlus.tell())
fileAppendPlus.seek(0)
fileAppendPlus.write("i am append Plus")
print(fileAppendPlus.tell())
print(fileAppendPlus.read())
![](https://img.haomeiwen.com/i3250328/c4a325ce1d928ca7.png)
运行结果
网友评论