文件的操作    关键字:open(“文件名称”,mode="操作",encoding= "编码方式"
操作1: mode= w :(写)   w+:(写读)    w+b(bytse格式写读)   wb(bytes写)
  (w 写入是把文件内的所有文件直接替换,w+ 写读是把写入的文件在读出来用处不大,wb+| bytes一般硬盘存储数据是以bytes类型存储的)
举例1: 只写
f = open("第一个文件",mode="w",encoding="utf-8")
f.write("想要写入的文件")
f.close
举例2:  写读
f = open("第一个文件",mode="w+",encoding="utf-8")
f.write("想要添加的文件")
print(f.read())
f.close()    #但是这样做意义不大 还是把前面的文件全部都覆盖了 跟写入作用差不多
操作2: mode= r:(读)    r+:(读写)    r+b(bytes格式读写)    rb(bytes读)
(r 读出指定文件的所有内容,r+读出后还可以在写入文件不会覆盖前面的内容 使用最多 r+b bytes类型存储传输数据 )
举例1: 只读
f = open("第一个文件",mode="r",encoding="utf-8")
f.read()
f.close()
举例2:   读写 这个用的最多
f = open("第一个文件",mode="r+",encoding="utf-8")
print(f.read())
f.write("添加的文件")
f.close()
举例3:    bytes读f = open("第一个文件",mode="rb")
print(f.read().decode("utf-8"))
f.close()
举例4:    bytes读写
f = open("第一个文件",mode="r+b",encoding="utf-8")
print(f.read().decode("utf-8"))
f.write("这里添入需要添加的文件".encode("utf8"))f.close
操作3: mode= a:(追)    a+:(追加读)  a+b(bytes追加读)    ab(bytes追加)
a 文件最后追加内容  a+ 追加内容后可以读出所有文件  a+b bytes类型追加读  ab bytes类型追加
举例1:   追加
f = open("第一个文件",mode="a",encoding="utf-8")
f.write("添加需要添加的内容")
f.close
举例2:    追加读
f = open("第一个文件",mode="a+",encoding="utf-8")
f.write("这里添加内容")
print(f.read())
f.close()
名词解释
write() : 写  括号内可以写入想要写入的文件 最后可以添加编码方式 不添加默认是 utf+8
read() :  读 括号内填写要多出多少个字符"
close() :  关闭  每次操作完文件必须退出文件 不然一直在内存中运行 很占内存
         这里添加光标的读取操作光标
read(3) : (读)读出字符个数 括号里填写个数,都是以字符的最小单位计算
tell(6) : (定)告诉你光标当前的位置在哪里, 括号里填写退回多少个字节 记住 是字节不是字符
          一个中文字节用utf-8代表三个字节  一个英文字母用一个字节表示
seek(5) : (调)按照字节把光标调整到指定的位置 按字节计算.
最后添加两个 list1= f.readline() 一行一行的读 括号里填写读取的行数字符个数
list2 = f.readlines() 把每一行当成列表中的一个元素 添加到list中
可以同时打开两个文件方法
 with open('第一个文件名称',mode='r+',enconding = 'utf-8') as f
      open(第二轮操作) as (第二个赋值名)
解说: with(关键字) open(关键字)(第一个操作文件名以及内容) as()关键字 f(f表示赋值名)
这里一个缩进 with open(第二轮操作) as (第二个赋值名)