SAMOUCZEK JĘZYKA PYTHON ROZDZIAŁY   
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.
Strona główna - O Pythonie - Interpreter - Samouczek - Przykłady programów - Linki