|
Rozdział 6: Wejście i wyjście 1: Ładniejsze formatowanie wyjścia
- 2: Czytanie z i pisanie do plików - 3: Metody obiektów pliku
- 4: Moduł pickle
Lekcja 3: Metody obiektów pliku
Aby przeanalizować przykłady z tej lekcji musisz mieć stworzony obiekt pliku o nazwie f.
Użyj f.read(ile), aby przeczytać jakąś liczbę danych i dostać je w postaci napisu. ile jest opcjonalnym argumentem liczbowym. Kiedy ile jest pominięte lub ujemne, cała zawartość pliku zostanie przeczytana i zwrócona: problem powstaje, jeśli wielkość czytanego pliku dwukrotnie przewyższa wielkość pamięci twojego komputera. W przypadku przeciwnym, co najwyżej ile bajtów zostanie przeczytanych i zwróconych. Jeśli osiągnięto koniec pliku, f.read() zwróci pusty napis ("").
>>> f.read()
'To jest cały plik.\012'
>>> f.read()
''
f.readline() czyta z pliku pojedynczy wiersz. Znak nowej linii (\n ) umiejscowiony jest na lewym końcu napisu i zostaje pominięty tylko w wypadku ostatniego wiersza pod warunkiem, że plik nie kończy się znakiem nowego wiersza. Powoduje to powstanie niejednoznaczności w zwracanym napisie: jeżeli f.readline() zwróci pusty napis osiągnęliśmy koniec pliku, podczas gdy pusta linia reprezentowana przez '\n', tzn. napis zawierający tylko znak nowej linii.
>>> f.readline()
'To jest pierwsza linia pliku.\012'
>>> f.readline()
'Druga linia pliku.\012'
>>> f.readline()
''
f.readlines() stosuje f.readline() w sposób ciągły i zwraca listę napisów reprezentujących wszystkie wiersze z pliku.
>>> f.readlines()
['To jest pierwsza linia pliku.\012', 'Druga linia pliku.\012']
f.write(napis) zapisuje zawartość napisu do pliku zawracając None.
>>> f=open('/tmp/workfile', 'r+')
>>> f.write('0123456789abcdef')
>>> f.seek(5) # Idź do 5 bajtu w pliku
>>> f.read(1)
'5'
>>> f.seek(-3, 2) # Idź do 3 bajtu od końca pliku
>>> f.read(1)
'd'
Jeżeli kończy się pracę z plikiem, trzeba wywołać f.close() (metoda ta zostnie wywołana przez interpreter przy ostatecznym niszczeniu obiektu), aby go zamknąć i zwolnić wszystkie zasoby systemowe związane z otwarciem i obsługą tego pliku. Po wywołaniu f.close() wszelkie próby użycia obiektu pliku f nie są możliwe do zrealizowania.
>>> f.close()
>>> f.read()
Traceback (innermost last):
File "", line 1, in ?
ValueError: I/O operation on closed file
Obiekty pliku posiadają dodatkowe metody, takie jak isatty() i truncate(), które są rzadziej używane.
|
|