#1.基本文件操作:a.打开 b.操作 c.关闭
## open(文件名,模式,编码) 默认是只读模式r,w 只写,a 追加
## 文件是以二进制方式存在于磁盘中
# 只读 r (py3中自动将字节码转换为字符串)
file = open('log.txt','r',encoding="utf-8")
data = file.read()
file.close()
print(data)
#只写(不存在则自动创建,有则将内容全部清空后再写入)
file = open('log.txt','w')
file.write("hello,world")
file.close()
#追加
file = open('log.txt','a')
file.write(" hao")
file.close()
#2.以字节的方式
#只读 rb(以二进制方式打开,py不会自动编码)
f = open('log.txt','rb')
data = f.read()
f.close()
print(type(data),data)
# 只写 wb
f = open('log.txt','wb') #以字节类型打开了文件
f.write(bytes("中国",encoding="utf-8")) # 必须添加编码方式将字符串转换为字节
f.close()
#3.多重模式 r+(读写) w+(写读) a+ 带+的时候都加上encoding
# r+ 指针在最开始
f = open('log.txt','r+',encoding="utf-8"')
f.write("山东")
f.seek(0)
data = f.read()
print(data)
#w+ 先清空 之后写的才能读 指针在开始
f = open("log.txt",'w+',encoding="utf-8")
f.write("小荷才露尖尖角")
f.seek(0)#调整指针位置
data = f.read()
f.close()
print(data)
#a+ 追加 打开文件时指针在最后
f = open("log.txt",'a+',encoding='utf-8')
print(f.tell())#获取指针位置
#4.操作方法
# 刷新缓冲区 写入磁盘 flush()
f1 = open("log.txt",'r+',encoding="utf-8")
f1.write("wowowow")
f1.flush() #将 wowowow写入文件
i = input(">>>>>")
# 仅读取一行数据 readline() 很好用
# 还有一种更好的读取方式
for line in f1:
print(line)
# 截取 truncate() 指针在哪 就截取从开始到指针位置
# 读取文件可以用以下方式:1.自动关闭 2.可同时打开两个文件
with open("log.txt",'r+',encoding='utf-8') as f:
f.read()
with open('log.txt','r') as f1, open("log2.txt",'w') as f2:
for line in f1:
f2.write(line)