python基本文件操作
python文件操作
python的文件操作相对于java复杂的IO流简单了好多,只要关心文件的读和写就行了
基本的文件操作
要注意的是,当不存在某路径的文件时,w,a模式会自动新建此文件夹,当读模式,文件不存在,会抛出异常
有三种模式,r为只读,w为只写,a为追加,r这种方式最终的系统资源调用,需要自己close文件对象,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的
file=open("prize.txt","r",encoding="GBK")
data=file.read()
print(data)
file.close()
{0:"保时捷911",1:"法拉利488",2:"劳斯莱斯古斯特",3:"GTR",4:"奥迪RS7",5:"宝马M4",6:"帕加尼风之子",7:"兰博基尼毒药"}
只写模式,当开启只写模式,第一次写入,会清空原有的所有内容,在这次之内继续写入,不会清空之前的内容
file=open("prize2.txt","w",encoding="GBK")
file.write("你好")
file.write("你好")
file.write("你好")
file.close()
你好你好你好
追加模式,会在之前的内容之上,追加写入字符(“以下是追加的内容:”为原来存在的内容)
file=open("prize2.txt","a",encoding="GBK")
file.write("hello")
file.write("你好")
file.write("我是追加")
file.close()
以下是追加的内容:hello你好我是追加
t,b模式
文件读写内容的格式有两种(默认的读写内容的模式为b模式):
- t模式为text
- b模式为bytes
需要注意的是:t、b这两种模式均不能单独使用,都需要与r/w/a之一连用。
当不指定编码encoding可以打印出字节,因为文件存储在硬盘上也是以二进制存储的
file=open("prize.txt","rb")
data=file.read()
print(data)
file.close()
b'{0:"\xb1\xa3\xca\xb1\xbd\xdd911",1:"\xb7\xa8\xc0\xad\xc0\xfb488",2:"\xc0\xcd\xcb\xb9\xc0\xb3\xcb\xb9\xb9\xc5\xcb\xb9\xcc\xd8",3:"GTR",4:"\xb0\xc2\xb5\xcfRS7",5:"\xb1\xa6\xc2\xedM4",6:"\xc5\xc1\xbc\xd3\xc4\xe1\xb7\xe7\xd6\xae\xd7\xd3",7:"\xc0\xbc\xb2\xa9\xbb\xf9\xc4\xe1\xb6\xbe\xd2\xa9"}'
with管理
用这种方式管理,不用自己close,但是要注意缩进
with open("prize.txt","r",encoding="GBK")as file:
data=file.read()
print(data)
{0:"保时捷911",1:"法拉利488",2:"劳斯莱斯古斯特",3:"GTR",4:"奥迪RS7",5:"宝马M4",6:"帕加尼风之子",7:"兰博基尼毒药"}