# 文件的操作
# 打开文件 open w:每次就会去创建 不管有没有每次去覆盖
# 默认的编码为GBK 这是中文编码 最好的习惯再打开文件时 给他指定一个编码类型
# fobj = open('./Test.txt','w',encoding='utf-8')
# # # 开始对文件进行操作 读/写操作 默认格式GBK
# fobj.write('在苍茫的大海上\n') # \n 表示换行操作
# fobj.write('狂风卷积着乌云')
# #保存 + 关闭文件
# fobj.close()
# # 以二进制的形式去写数据 wb 每次就会去创建 不管有没有每次去覆盖 将写入的内容转换为二进制
# fobj = open('Test_1.txt','wb') # str-》bytes
# fobj.write('在乌云和大海之间'.encode('utf-8'))
# fobj.close()
# a 用于追加数据
# fobj = open('Test.txt','a') #用于追加数据
# fobj.write('在苍茫的大海上') # \n 表示换行操作
# fobj.write('狂风卷积着乌云')
# fobj.write('在乌云和大海之间\n')
# fobj.write('海燕像黑色的闪电\n')
# fobj.write('今天我诗性大发\n')
# fobj.write('做了几首诗\n')
# fobj.close()
# 1.读数据操作
# f = open('Test.txt','r') # r用二进制形式读取数据
# print(f.read()) # 读取所有的数据
# print(f.read(10)) # 读取指定的字符
# # print(f.read()) # 第二次读取将从第一次位置继续读取
# # print(f.readline()) # 表示读一行数据
# print(f.readlines(1)) # 与read一样,输出的列表 可以指定读取的行数
# 2.用二进制形式读取数据
f = open('Test.txt','rb') # rb用二进制形式读取数据
# data = f.read() # 读取所有的数据
# print(data)
# print(data.decode('gbk')) # 解码并读取所有的数据
# print(f.read(10)) # 读取指定的字符
# # print(f.read()) # 第二次读取将从第一次位置继续读取
# # print(f.readline()) # 表示读一行数据
# print(f.readlines(1)) # 与read一样,输出的列表 可以指定读取的行数
# f.close() # 关闭文件对象
# with上下文管理对象 优点:自动释放打开关联的对象
with open('Test.txt','a') as f:
# print(f.read())
f.write('我觉得python很好学\n')
# 小结
# 文件读写的几种的操作方式
# read r r+ rb rb+
# r r+ 只读 使用普通读取场景
# rb rb+ 适用 文件 图片 视频 音频 文件读取
# write w w+ wb wb+ a ab
# w wb+ w+ 每次都会创建文件
# 二进制读写的时候 要注意编码问题 默认情况下 我们写入文件的编码是gbk
# a ab a+ 在原有的文件的基础之后去【文件指针的末尾】去追加,
# 并不是每次的都去创建一个新的文件