¿Los objetos abiertos (archivo, “wt” o “rt”) son diferentes?

Cuando tu lo hagas:

file = open("my file","wt") 

y

 file = open("my file" , "rt") 

Ambos crean objetos de archivo en los que usamos métodos de archivo. ¿Pero están creando diferentes objetos de archivo? ¿Y si están creando diferentes objetos de archivo, sería justo decir que el “wt” es mutable, mientras que el “rt” es inmutable?

No, no sería justo decir eso. Está creando instancias del mismo tipo de file estándar, que las llamadas de manipulación de archivos de proxy al sistema operativo. El modo define lo que el sistema operativo te permitirá hacer.

No importa si usa el mismo nombre de archivo o nombres de archivo diferentes; al sistema operativo no le importa, y tampoco a Python; Los objetos de archivo abierto son distintos.

El objeto Python en sí es inmutable; no puede cambiar el modo, nombre de archivo u otros atributos después del hecho.

Tenga en cuenta que al agregar + al modo, puede leer y escribir en el objeto de archivo; w+ truncará el archivo primero, mientras que r+ no lo hará.

En el nivel del sistema operativo, se crearían como dos descriptores de archivo distintos. Ellos (probablemente) apuntan a los mismos datos en el VFS / caché, pero pueden ser operados independientemente.