当你这样做时:
file = open("my file","wt")
和
file = open("my file" , "rt")
这两个都创建我们使用文件方法的文件对象。但他们是否创建了不同的文件对象?如果他们正在创建不同的文件对象,那么可以说“wt”是可变的,而“rt”是不可变的吗?
答案 0 :(得分:2)
不,这不公平。您正在创建相同标准file
类型的实例,该实例代理对操作系统的文件操作调用。该模式定义了操作系统将允许您执行的操作。
如果使用相同的文件名或不同的文件名,则无关紧要;操作系统并不关心,Python也不关心;打开的文件对象是不同的。
Python对象本身是不可变的;事后你不能改变模式,文件名或其他属性。
请注意,通过将+
添加到模式,您可以读取和写入文件对象; w+
会先截断文件,而r+
则不会。
答案 1 :(得分:0)
在操作系统级别,它们将被创建为两个不同的文件描述符。它们(可能)指向VFS /缓存中的相同数据,但可以独立操作。