Po otwarciu pliku jest on przechowywany w otwartym obiekcie pliku, który daje dostęp do różnych metod na nim, takich jak czytanie lub pisanie.Co mogę zrobić z obiektem o zamkniętym pliku?
>>> f = open("file0")
>>> f
<open file 'file0', mode 'r' at 0x0000000002E51660>
Oczywiście po zakończeniu należy zamknąć plik, aby nie zajmować miejsca w pamięci.
>>> f.close()
>>> f
<closed file 'file0', mode 'r' at 0x0000000002E51660>
Pozostawia zamknięty plik, aby obiekt nadal istniał, ale nie jest już używany, aby zachować jego czytelność. Ale czy jest jakieś praktyczne zastosowanie tego? Nie można go przeczytać ani napisać. Nie można go ponownie użyć do ponownego otwarcia pliku.
>>> 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
Czy istnieje praktyczny użytek dla tego zamkniętego obiektu pliku poza identyfikacją, że obiekt pliku jest odwoływany, ale jest zamknięty?
Ponadto, jaka jest alternatywa? Obiekt nie może sam się usunąć ani zmodyfikować odniesień do niego, więc zamknięty plik jest zasadniczo jedyną opcją. –
@Lattyware Nie zdawałem sobie sprawy, że obiekt nie może sam się usunąć, ale ma sens jako praktyka. – SuperBiasedMan
Możesz sprawdzić, czy plik został "naprawdę" zamknięty przez f.closed –