# 文件的操作
# 1. "r"
# 只读, 是默认的打开方式
# f = open("02_test.txt", "r", encoding="utf-8") # file 文件对象
# # print(f)
# t = f.read()
# print(t)
# f.close() #关闭文件对象
# 2. "w" 只写模式, 不支持读取
# 如果文件存在, 文件的内容将被清空
# 如果文件不存在, 文件将被创建, 从头写
# f = open("02_test1.txt", "w", encoding="utf-8") # file 文件对象
# print(f)
# f.write('abcdefg')
# f.close()
# 3. "a" append 追加模式
# 只写,不支持读取
# 文件存在, 追加写入
# 文件不存在, 创建文件。
# f = open("02_test3.txt", "a", encoding="utf-8") # file 文件对象
# print(f)
# f.write('\nxxxxx\n')
# f.close()
# 4. "x"
# 只写, 不支持读取
# 文件存在, 抛出异常
# 文件不存在, 创建新文件
# f = open("02_test5.txt", "x", encoding="utf-8") # file 文件对象
# print(f)
# f.write('\nxxxxx\n')
# # f.read() # not readable
# f.close()
# 5. "t" text
# 文本模式, 需要配合主模式使用
# f = open("02_test5.txt", "t", encoding="utf-8") 不能单独使用
# f = open("02_test5.txt", "wt", encoding="utf-8")
# print(f)
# f.write('\nxxxxx\n')
# # f.read() # not readable
# f.close()
# 6. "b" binary 需要配合主模式使用
# 二进制模式 二进制里只有字节,没有字符
# f = open("02_test5.txt", "wb")
# print(f)
# f.write(b'11')
# # f.read() # not readable
# f.close()
# f = open("02_test5.txt", "rb")
# bt = f.read()
# print(bt) # 0 0
# # 1 1
# # 2 10
# # 3 11
# 7 增强 +
# f = open("02_test.txt", "r+", encoding="utf-8") # file 文件对象
# # print(f)
# f.write('dasfsdfwerwerqwer')
# f.close() #关闭文件对象
# f = open("02_test.txt", "w+", encoding="utf-8") # file 文件对象
# # print(f)
# f.write('bbbbbb')
# print(f.tell()) 告诉我当点 指针位置
# # f.seek(3) # 返回给定数字的 指针
# t = f.read() # 如果没有上面的f.seek(3),我们的指针在最后面,所以下面就读不出内容了
# print(t)
# f.close() #关闭文件对象
# f = open("02_test.txt", "a+", encoding="utf-8")
# print(f.tell())
# f.seek(2)
# print(f.tell())
# f.write('bbbbbbb') # 无论是否指定指针是否指定,它都是从最后开始写的
# f = open("02_test.txt", "r+", encoding="utf-8")
# print(f.tell())
# f.seek(2)
# print(f.tell())
# f.write('bbbbbbb') # 指定指针位置为2后,它从2后面开始写入字符
# f = open("02_test8.txt", "x+", encoding="utf-8")
# f.write('bbbbbbb')
# print(f.tell())
# f.seek(2)
# t = f.read() # 加上seek(2) 从2后面开始读取
# print(t)
# with 语句 会自动调用 close 方法。
with open("02_test7.txt", "r+", encoding="utf-8") as f:
t = f.read()
print(t)