python 内置了一个open函数用于操作文件f=open("d:/python/test/test.txt",mode="r+",encoding="utf-8")
content=f.read()
print(content);
f.write("我是一颗小小的势头\n,深深地额埋在泥土之中\n")
f.close();
open(path,mode,encoding) 函数有三个参数:path 是要操作文件的路径,mode是打开模式,encoding是编码方式
如果以bytes类型打开文件的时候,则不需要在设置encoding编码方式file=open("shit",'wb')#wB 以byte模式写入
file.write("卡的房间拉克丝都费劲卡世纪东方".encode('utf-8')) #因为以byte模式写入,所以需要转换成bytes
file.close()
with关键字为了保证文件操作错误之后还能正常关闭文件 来减少节省io开支,通常open都放置在with关键字里:with open("d:/python/test/test.txt",mode="r+",encoding="utf-8") as f:
cont=f.read()
print(cont) #在with里不需要在手动关闭fwith open("fuck","r+",encoding="utf-8") as f1,open("test.txt",'r',encoding="utf-8") as f2:
#with里也可以像这样同时打开多个文件
f2.seek(8)
print(f1.read(),f2.read());
mode的可选参数r 只读 r+ 读写(没有文件时会报错)
w 只写 w+ 写读(有文件就打开,没有文件就创建文件,如果文件里有内容则清除之前内容再写)
a 在文件末尾追加 a+ 追加和读 (有文件就打开,没有文件就创建文件)
rb 以bytes类型读
wb 以bytes类型写
ab 以bytes类型追加
open打开的文件对象的方法 file的方法with open("d:/python/test/test.txt",mode="r+",encoding="utf-8") as f:
cont=f.read() #一次性读取所有内容,读完了指针会停在最后如果可写的话,会直接在最后写内容,可以传一个数字参数,用于限制读取文件内容的个数
#read是按照字符计算个数,字符就是你能看到的最小单位。一个汉字也是一个字符
f.readable() #判断还有没有能读的内容,返回布尔值
f.write("abcedksdioe") #写入内容,如果是在bytes类型打开的,需要把str转成bytes 类型 str.encode("utf-8")
f.seek(3) #改变访问文件指针的位置为3,
#光标寻找的规则是按照字节去找寻找,utf-8下,一个中文字节是三个字节,如果寻找的光标位置不是3倍数,会报错
f.truncate(3) #从第三个字符开始截断,后边的全部删除
f.readlines() #逐行的读文件,每次遇到换行符停止
print(cont)