1.1 Otwarcie pliku
Praca z plikami w Pythonie to czysta przyjemność, bo to jest zrobione bardzo prosto i intuicyjnie. Teraz mówimy nie o tworzeniu czy przenoszeniu plików na dysku, ale o czytaniu i zapisywaniu zawartości plików.
Praca z zawartością pliku zazwyczaj przebiega według następującego schematu:
Otwarcie pliku
Praca z danymi pliku
Zamknięcie pliku
Przykład czytania całej zawartości pliku:
file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()
Funkcja open
jest używana do otwierania pliku. Przyjmuje dwa główne argumenty: nazwę pliku i tryb dostępu. Funkcja zwraca obiekt pliku
, który można następnie używać do wykonywania operacji czytania i zapisywania.
Przykład:
file = open('example.txt', 'r')
Jeśli podano tylko nazwę pliku, będzie on szukany w bieżącym katalogu roboczym programu. Jeśli podano pełną nazwę pliku, to będzie dostęp do podanej ścieżki.
1.2 Tryby dostępu
Drugi parametr w funkcji open()
określa tryb pracy z plikiem. Tryby dostępu definiują, jakie operacje można wykonywać z plikiem (czytanie, zapis itp.).
Oto główne tryby dostępu:
Read
— czytanie.Write
— zapis.Append
— dodawanie.
Istnieje kilka wariacji tych trybów:
- 'r': Otwarcie pliku do czytania (tryb domyślny). Plik musi istnieć.
- 'w': Otwarcie pliku do zapisu. Zawartość pliku będzie usunięta. Jeśli plik nie istnieje, zostanie utworzony.
- 'a': Otwarcie pliku do dodawania. Dane będą dodane na końcu pliku. Jeśli plik nie istnieje, zostanie utworzony.
- 'r+': Otwarcie pliku do czytania i zapisywania. Plik musi istnieć.
- 'w+': Otwarcie pliku do czytania i zapisywania. Zawartość pliku będzie usunięta. Jeśli plik nie istnieje, zostanie utworzony.
- 'a+': Otwarcie pliku do czytania i dodawania. Dane będą dodane na końcu pliku. Jeśli plik nie istnieje, zostanie utworzony.
Przykład zapisu do pliku:
Jeśli chcesz zapisać dane do pliku, to po prostu podaj w
jako tryb dostępu przy otwieraniu pliku. Zwróć uwagę, że cała stara zawartość pliku zostanie usunięta!
file = open('example.txt', 'w')
file.write("Hello, World!")
file.close()
Przykład dodawania do pliku:
Jeśli nie chcesz usuwać zawartości pliku, ale chcesz coś dopisać na jego końcu, to musisz podać a
jako tryb dostępu do pliku.
file = open('example.txt', 'a')
file.write("\nAppended text.")
file.close()
Ważne!
Jeśli piszesz do pliku, i jeszcze go nie ma, to zostanie utworzony automatycznie. Ale jeśli spróbujesz przeczytać dane z nieistniejącego pliku, wystąpi wyjątek.
1.3 Zamknięcie pliku
Za każdym razem, gdy otwierasz plik, system operacyjny sprawdza Twoje prawa dostępu do pliku i oznacza go jako używany przez Twój program. Do pracy z plikiem przydzielany jest specjalny zasób — handler.
Liczba handlerów, które może uzyskać Twój program, jest ograniczona. Oznacza to, że możesz mieć otwarte jedynie kilka setek plików jednocześnie. Wydaje się, że to dużo, ale jeśli Twój program pracuje na serwerze miesiącami i codziennie coś czyta i zapisuje do plików, to ten limit może zostać szybko osiągnięty.
Dlatego po zakończeniu pracy z plikiem, należy go zamknąć — wywołać metodę close()
. W ten sposób informujesz system operacyjny, że nie potrzebujesz już tego pliku, i jego handler nie jest Ci potrzebny.
Zamknięcie pliku
Po zakończeniu pracy z plikiem należy go zamknąć, aby zwolnić zasoby systemowe. Do tego używamy metody close()
.
file = open('example.txt', 'r')
# Wykonanie operacji z plikiem
file.close()
Każdy plik, który otworzyłeś do czytania lub zapisywania, musi zostać zamknięty. Nie zapomnij wywołać metody close()
.
GO TO FULL VERSION