Quando si apre un file, questo viene archiviato in un oggetto file aperto che consente di accedere a vari metodi su di esso come la lettura o la scrittura.Cosa posso fare con un oggetto file chiuso?
>>> f = open("file0")
>>> f
<open file 'file0', mode 'r' at 0x0000000002E51660>
Ovviamente quando hai finito devi chiudere il file per evitare che occupi spazio di memoria.
>>> f.close()
>>> f
<closed file 'file0', mode 'r' at 0x0000000002E51660>
Questo lascia un file chiuso, in modo che l'oggetto esiste ancora se non è più sta usando lo spazio per il gusto di essere leggibile. Ma c'è qualche applicazione pratica di questo? Non può essere letto o scritto. Non può essere utilizzato per riaprire il file nuovamente.
>>> f.open()
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
f.open()
AttributeError: 'file' object has no attribute 'open'
>>> open(f)
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
open(f)
TypeError: coercing to Unicode: need string or buffer, file found
C'è un uso pratico per questo oggetto file chiuso a parte l'identificazione che un oggetto file viene fatto riferimento, ma è chiuso?
Inoltre, qual è l'alternativa? Un oggetto non può cancellarsi o modificare i riferimenti a se stesso, quindi un file chiuso è essenzialmente l'unica opzione. –
@Lattyware Non mi sono reso conto che un oggetto non può cancellarsi, sebbene abbia senso come pratica. – SuperBiasedMan
Puoi controllare se il file è stato "veramente" chiuso da f.closed –