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()