29 grudnia 2017

Python – Operacje na plikach

Hej, szybki wpis opisujący w jaki sposób możemy odczytać plik tekstowy za pomocą Pythona, oraz w jaki sposób zapisać w nim nową linię tekstu.

Nie raz możemy poczuć potrzebę zapisu linii tekstu do pliku txt, również odczytania treści zawartej w owym pliku.

Zacznijmy więc.
Aby zacząć operację na pliku, należy go pierw otworzyć wpisując linię kodu:

text_file = open("plik.txt", "r+")

Funkcja open() otwiera plik, jako parametr podajemy nazwę pliku, lub całą ścieżkę do pliku. Jeśli ścieżka nie zostanie podana, Python naturalnie zacznie poszukiwania pliku wewnątrz katalogu w którym znajduje się nasz program. Drugim parametrem podajemy sposób otwarcia pliku, „r+” oznacza odczyt oraz zapis do pliku. Poniżej pełna lista:

  • „r” – Odczyt danych z pliku tekstowego.
  • „w” – Zapis do pliku. Jeśli plik istnieje, jego zawartość zostanie podmieniona na nową. Jeśli plik nie istnieje, zostanie stworzony.
  • „a” – Dopisanie danych do pliku. Jeśli plik nie istnieje, zostaje stworzony.
  • „r+” – Odczyt i zapis danych do pliku.
  • „w+” – Zapis i odczyt danych z pliku. Nowe dane zastąpią starą zawartość pliku. Jeśli plik nie istnieje, zostaje utworzony.
  • „a+” – Dopisywanie i odczyt danych z pliku tekstowego. Jeśli plik istnieje, nowe dane są dopisane na jego końcu. Jeśli plik nie istnieje, zostaje utworzony.

Wracając do programu. Za pomocą „text_file” możemy operować na naszym pliku tekstowym.

Odczyt pojedynczej linii tekstu jest możliwy za pomocą funkcji:

print(text_file.readline())

Jeśli poniżej wywołamy kolejny raz readLine(), odczytamy kolejną w kolejności linię tekstu.

Możemy również odczytać wszystkie linie tekstu wewnątrz pliku, zostaną zrzucone do tablicy, za pomocą funkcji:

print(text_file.readlines())

Poniżej wskażę inne metody zapisu oraz odczytu danych z/do pliku:

  • read([rozmiar]) – Odczytuje całą zawartość pliku, jeśli podamy argument, odczyta tylko wskazaną przez niego ilość znaków.
  • readline([rozmiar]) – Odczytuje jedną linię z pliku, jeśli podany argument, odczyta tylko wskazaną liczbę znaków z bieżącej linii.
  • readlines() – Odczytuje wszystkie linie z pliku i zwraca jako listę.
  • write(dane) – Zapisuje „dane” do pliku.
  • writelines(dane) – Zapisuje listę „dane” do pliku.

Na koniec dopiszmy coś nowego do naszego pliku:

text_file.write('kolejna linia\n')

Nie zapomnijmy o zamknięciu naszego pliku:

text_file.close()