#!/usr/bin/env python
# -*- coding:utf-8 -*-
#文件操作之基本的打开模式
#1.只读,r
f1=open('test.txt','r')
data1=f1.read()
f1.close()
print(data1)
#2.w,只写模式(不可读,文件不存在则创建,存在则清空内容)
f2=open('test.txt','w')
data2=f2.write("123456")
f2.close()
f3=open('test1.txt','w')
data3=f3.write("Calvin666")
f3.close()
f3=open('test1.txt','w')
data3=f3.writelines("python is a good language\n"
"I like it very much\n"
"How about you?") #一次写入多行内容
f3.close()
#3.x,只写模式(不可读,文件不存在则创建,存在则报错)
f4=open('test2.txt','x')
data4=f4.write("Calvin666")
f4.close()
#4.a,追加模式(不可读,文件不存在则创建,存在则追加内容)
f5=open('test2.txt','a')
data5=f5.write("888")
f5.close()
#字节的方式打开文件
#只读字节rb
f6=open('test2.txt','rb')
data6=f6.read()
f6.close()
str_data=str(data6,encoding='utf-8')
print(type(data6),data6,str_data)
#只写字节wb,写入字节,传入的字符串要先转换成字节才能写入到文件
f7=open('test1.txt','wb')
str_data2='科比'
byte_data=bytes(str_data2,encoding='utf-8')
f7.write(byte_data)
f7.close()
#"+"表示可以同时读写某个文件
#r+ ,读写【可读,可写】,默认指针在最开始
#r,从指针位置为0开始读取
# w,如果先读,末尾追加,如果要从某个位置写,使用seek指向某个位置
f8=open('test1.txt','r+',encoding='utf-8')
#返回一个整数,表示当前文件指针的位置.
f8.tell()
data1=f8.write('greate')
f8.close()
print(data1)
#w+ ,写读【可读,可写】,默认指针在最后
f8=open('test1.txt','r+',encoding='utf-8')
#返回一个整数,表示当前文件指针的位置.
f8.tell()
data1=f8.write('科比布莱恩特')
#f.seek(偏移量,[起始位置]) 用来移动文件指针,偏移量:单位:字节,可正可负,起始位置:0-文件头,默认值;1-当前位置;2-文件尾
f8.seek(0)
data2=f8.read()
f8.close()
print(data2)
#x+ ,写读【可读,可写】
#与w+类似,只是文件存在会报错
#a+ ,写读【可读,可写】,默认指针在最后
#r,最后位置读取
#w,主动seek,最后追加
f9=open('test1.txt','a+',encoding='utf-8')
#返回一个整数,表示当前文件指针的位置.
f9.tell()
data3=f9.write('科比布莱恩特')
#f.seek(偏移量,[起始位置]) 用来移动文件指针,偏移量:单位:字节,可正可负,起始位置:0-文件头,默认值;1-当前位置;2-文件尾
f9.seek(0)
data4=f9.read()
f9.close()
print(data4)