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:"xb1xa3xcaxb1xbdxdd911",1:"xb7xa8xc0xadxc0xfb488",2:"xc0xcdxcbxb9xc0xb3xcbxb9xb9xc5xcbxb9xccxd8",3:"GTR",4:"xb0xc2xb5xcfRS7",5:"xb1xa6xc2xedM4",6:"xc5xc1xbcxd3xc4xe1xb7xe7xd6xaexd7xd3",7:"xc0xbcxb2xa9xbbxf9xc4xe1xb6xbexd2xa9"}'
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:"兰博基尼毒药"}