# 2.4 访问模式
# 2.4.1 r:只读模式(默认模式),文件必须存在,不存在就报错
# 2.4.2 W:只写模式,文件存在就会先清空文件内容,再写入添加内容,不存在就创建新文件
# file = open('test01.txt','w',encoding = 'utf-8')
# # print(file.read())
# print(file.write('你好我是nefert很高兴见到你')) #重新编辑文件内容,原有内容就会被覆盖
# file.close()# 2.4.3 + :可以也同时读写某个文件
# 如果使用+会影响文件的读写效率,开发过程中更多时候会以只读或只写来操作文件
# r+: 可读写文件,文件不存在就会报错
# w+: 先写再读,文件存在就重新编译文件,不存在就创建新文件
# f = open('test01.txt','w+',encoding='utf-8')
# f.write('我是天才')
# print(f.read()) #没有任何内容
# f.close()
#
# # 2.4.4 a:追加模式,不存在就创建新文件进行写入,存在则在原来的基础上追加新的内容
# f = open('test01.txt','a',encoding = 'utf-8')
# f.write('还是不是')
# f.close()
# 文件指针:标记从那个位置开始读取数据
# 方法一:更改操作方式
# f = open('test01.txt','w+',encoding='utf-8')
# f.write('我是天才')
# print(f.read()) #没有任何内容
# f.close()
# f = open('test01.txt','r',encoding='utf-8')
# print(f.read())
# f.close()
# 方法二:文件定位操作
# tell()和seek()
# tell():显示文件内当前位置,即文件指针当前位置
# seek(offset,whence): 移动文件读取指针到指定位置
# offset:偏移量,表示要移动的字节数
# whence:起始位置,表示移动字节的参考位置,默认是0,0代表文件开头作为参考位置,
# 1代表当前位置作为参考位置,2代表将文件末尾位置作为参考位置
# seek(0,0):就会把文件指针移到文件开头
f = open('test.txt','w+')
f.write('hello')
pos = f.tell()
print("当前文件指针位置:",pos)
f.seek(0,0)
pos1 = f.tell()
print("移动后文件指针位置:",pos1)
print(f.read())
f.close()