Jak czytać i zapisywać pliki w Pythonie

Odczyt z plików i zapis do nich to typowe zadanie w programowaniu, a Python ułatwia to dzięki wbudowanym możliwościom obsługi plików. Zrozumienie, jak pracować z plikami, jest niezbędne dla każdego programisty Pythona, ponieważ pozwala obsługiwać przechowywanie danych, rejestrowanie, zarządzanie konfiguracją i wiele więcej. Ten przewodnik obejmuje otwieranie, odczytywanie, zapisywanie i zamykanie plików w Pythonie, a także obsługę różnych trybów plików.

Otwieranie i zamykanie plików

W Pythonie używasz funkcji open(), aby otworzyć plik. Funkcja open() zwraca obiekt pliku, który udostępnia metody do odczytu i zapisu. Ważne jest, aby zamknąć plik po zakończeniu pracy z nim, używając metody close(), aby zwolnić zasoby systemowe.

# Opening and closing a file
file = open("example.txt", "r")  # Open file for reading
# Perform file operations
file.close()  # Close the file

Odczytywanie plików

Istnieje kilka sposobów odczytywania zawartości pliku w Pythonie, w zależności od potrzeb:

Przeczytaj cały plik

Metoda read() odczytuje całą zawartość pliku do pojedynczego ciągu znaków.

# Reading the entire file
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

Odczyt wierszy pliku

Metoda readline() odczytuje jedną linię z pliku, natomiast readlines() odczytuje wszystkie linie i zwraca je jako listę.

# Reading lines using readline()
with open("example.txt", "r") as file:
    line = file.readline()
    while line:
        print(line.strip())
        line = file.readline()

# Reading all lines using readlines()
with open("example.txt", "r") as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())

Odczytywanie plików linia po linii

Preferowaną metodą odczytu pliku wiersz po wierszu jest użycie pętli for bezpośrednio na obiekcie pliku. To podejście jest wydajne pod względem pamięci, szczególnie w przypadku dużych plików.

# Reading file line by line using a for loop
with open("example.txt", "r") as file:
    for line in file:
        print(line.strip())

Zapisywanie do plików

Python pozwala na zapis do plików za pomocą metod write() i writelines(). Musisz otworzyć plik w trybie, który obsługuje zapis, takim jak 'w' (zapis) lub 'a' (dołączanie).

Zapisywanie do pliku

Metoda write() zapisuje pojedynczy ciąg do pliku. Otwarcie pliku w trybie zapisu 'w' spowoduje utworzenie nowego pliku lub nadpisanie istniejącego pliku.

# Writing to a file
with open("output.txt", "w") as file:
    file.write("Hello, World!\n")
    file.write("This is a new line.")

Dołączanie do pliku

Otwarcie pliku w trybie dołączania 'a' umożliwia dodanie zawartości na końcu istniejącego pliku bez nadpisywania jego zawartości.

# Appending to a file
with open("output.txt", "a") as file:
    file.write("\nThis line is appended.")

Pisanie wielu wierszy

Metoda writelines() służy do zapisywania wielu wierszy do pliku. Oczekuje listy ciągów, z których każdy reprezentuje wiersz.

# Writing multiple lines to a file
lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
with open("output.txt", "w") as file:
    file.writelines(lines)

Tryby plików

Funkcja Pythona open() obsługuje kilka trybów otwierania plików:

  • 'r' - Tryb odczytu (domyślny). Otwiera plik do odczytu.
  • 'w' - Tryb zapisu. Otwiera plik do zapisu (tworzy nowy plik lub obcina istniejący plik).
  • 'a' - Tryb append. Otwiera plik do appendowania (tworzy nowy plik, jeśli nie istnieje).
  • 'r+' - Tryb odczytu i zapisu. Otwiera plik do odczytu i zapisu.
  • 'b' - Tryb binarny. Otwiera plik w trybie binarnym (używany z 'rb', 'wb', itd.).

Wniosek

Odczyt z plików i zapis do plików w Pythonie jest prosty, gdy zrozumiesz podstawowe koncepcje i tryby plików. Opanowując obsługę plików, możesz sprawnie zarządzać danymi, obsługiwać dane wejściowe/wyjściowe użytkownika i automatyzować zadania, które obejmują operacje na plikach. Ćwicz używanie tych technik, aby stać się biegłym w zarządzaniu plikami w Pythonie.