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.