文件处理
# f=open("test2")
#f=open("test",encoding="utf8")
#f=open("test3",mode="w",encoding="utf8")
#f=open("test3",mode="w",encoding="utf8")
#f=open("test5",mode="a",encoding="utf8")
#f=open("test5",mode="x",encoding="utf8")#存在
#f=open("test5",mode="rb")
f=open("test5",mode="wb+")
#--------------------读操作
#data=f.read()
# data=f.read(5) # 读指定个数的字符
# data2=f.read(5) #从光标位置 读指定个数的字符
# data=f.readline() #读某一行
# data2=f.readline()
# data=f.readlines() #返回的是一个列表结果,以 结尾
#print(data)
#print("data2",data2)
# f.close()
#练习
# count=0
# for line in f.readlines():#会把所有文件放到内存,不建议用
# if count==3:
# line="".join([line.strip(),"岳飞"])
#
# print(line.strip())
# count+=1
# for line in f: # 优化内存,建议用,每次拿一行
# if count==3:
# line="".join([line.strip(),"岳飞"])
#
# print(line.strip())
# count+=1
#--------------------写操作
#print(f.read()) #不可读
#
# f.write("yyyy
world2")
# f.flush()
# f.write("iiii
world2")
#--------------------flush操作
# f.write("hellp test5")
# f.flush()
#
# import time
# time.sleep(100)
#进度条:
# import sys
#
# for i in range(100):
#
# #
#
# s="
%d%% %s"%(i,"#"*i)
#
# sys.stdout.write(s)
# sys.stdout.flush()
#
# import time
# time.sleep(0.5)
#可读可写模式 r+ w+ a+
# r+ 如果写的话是追 加写,读是一样读
# f=open("test5",mode="r+",encoding="utf8")
# print(f.read())
#
# f.write("where is xialv?")
#w+ ,先复盖再读取,一定是先清空,再写
#f=open("test5",mode="w+",encoding="utf8")
# f=open("test5",mode="r+",encoding="utf8")
#
# print(f.read(3))
#
# #f.write("hello林海峰")
# #f.seek(3,0) #将光标移到开始位置,不同于read()方法,它是按字节移动的
# #f.seek(1,-2) #将光标移到开始位置,不同于read()方法,它是按字节移动的 欠着
#print(f.read(3))
#f.seek(1,0)
#f.seek(-3,2) #该模式一定按字节操作
#print("----")
#print(f.read().decode("utf8"))
#
# print(f.read())
#print(f.tell())#光标所在位置
# f.write(b"hello")
#
# print(f.read())
# f.seek(-1,2)
# print(f.read())
# f.close()
# a+ 总是在最后位置添加,无论光标在哪,都是在最后写
# f=open("test5","a+")
#
# f.seek(0)
# print(f.read())
#
# f.seek(0)
#
# f.write("alex")
#------------总结
# r w a w:覆盖写 a:追加写
# r+:读默认光标在开始位置, 写的追加写
# w+:写覆盖写(上来就先复盖),想读取内容:seek调整
# a+: 光标默认在文件最后位置,不管光标位置,一定是追加写;想读取内容:seek调整
因为w+跟a+一定是光标在最后的,所以你要是想读的话, 一定要调整光标,所以这个光标是有用的
#seek的应用,比如断点续传
# f.seek(10000)
# f.read()
#--------- rb wb ab 二进制操作 b操作不需要encodeing这个操作,因为他直接就是用来传输什么的,直接放到内存中是字节
# f=open("test5","rb")
# print(f.read())
# f=open("test6","wb")
#
# f.write("hello李杰".encode("utf8"))
#
# f.close()
#
# f=open("test6","ab")
# with
# f=open("rest6")
# f.read()
# f.close()
# with open("test6") as f: # f=open("test6")
# f.read()