W tym materiale przedstawiam jak prosto przeprowadza się zapis do pliku tekstowego w języku Python 🎉! Opiszę Ci co trzeba zrobić krok po kroku i jakie są sposoby zapisu treści do pliku 👍. Szczegóły tematu jak zawsze w środku 🙂!

OTO JAK PRAWIDŁOWO PRZEPROWADZIĆ ZAPIS DO PLIKU TEKSTOWEGO W JĘZYKU PYTHON!

Python ma w sobie tę ogromną zaletę, że upraszcza wiele operacji, które w innych językach mogłyby być dla początkujących wręcz barierami nie do przeskoczenia ❤️. Tak jak było w przypadku odczytywania plików tekstowych, tak i tutaj wszystko zaczyna się od wywołania jednej funkcji i co więcej, to jest ta sama, którą mogłeś(-aś) poznać wcześniej 😄!

Najpierw ustalmy jak w ogóle utworzyć nowy plik tekstowy, bo od tego trzeba zacząć!

JAK STWORZYĆ PLIK TEKSTOWY W JĘZYKU PYTHON?

W Pythonie, pliki wszelkiego rodzaju, w tym tekstowe, tworzymy za pomocą funkcji "open", tej samej jakiej używamy też do otwierania plików 😊! Wystarczy podać ścieżkę do pliku tekstowego i jeden z trybów odczytu odpowiedzialny za zapis (wyjaśniam ten temat w dalszej części), a Python po uruchomieniu programu, utworzy na Twoich oczach nowy plik tekstowy 💾! Także nie szkodzi, jeśli go tam nie ma 😉. Należy jednak mieć świadomość, że skutek utworzenia pliku zależy od ustawionego trybu, bo jest kilka różnych ⚠️!

To jest przykładowe wywołanie funkcji "open" tworzące nowy plik tekstowy w tym samym katalogu, w którym znajduje się skrypt z poniższym wywołaniem 👇:

my_file = open('file.txt', 'w')

Popatrzmy na samo wywołanie 👀.

Pierwszy parametr oznacza ścieżkę względną do pliku, który ma się pojawić na dysku 1️⃣. Podajemy ją w postaci łańcucha znaków. Ścieżkę względną nazywamy taką ścieżkę, której "miejscem startowym" czy "korzeniem" jest katalog, w którym znajduje się uruchomiony skrypt ℹ️. Oprócz tego, dopisujemy rozszerzenie pliku jako "txt" ⚠️!

Możesz też utworzyć plik wewnątrz innego katalogu, który znajduje się w katalogu razem ze skryptem 😁! Wystarczy dopisać bezbłędną nazwę tego katalogu tuż przed nazwą samego pliku z rozszerzeniem i rozdzielić je znakiem ukośnika (/) 💡. Tylko wiedz, że najpierw musisz utworzyć ten katalog, gdyż jeżeli go tam nie będzie, to Python nie utworzy go automatycznie, tylko zgłosi błąd "FileNotFoundError" i odmówi dalszego wykonywania kodu, jeśli nie dodaliśmy przechwytywania wyjątków ⛔.

Drugi parametr oznacza tryb obsługi pliku, który także jest łańcuchowego typu danych 2️⃣. Najlepiej przedstawić je wszystkie w formie tabelki 📜.

JAKIE WYSTĘPUJĄ TRYBY OBSŁUGI PLIKU W JĘZYKU PYTHON?

Python wspiera następują następujące tryby obsługi pliku 👇:

TRYB ZNACZENIE
'r' otwarcie dla odczytu
'w' otwarcie dla zapisu z wyczyszczeniem aktualnej zawartości
'x' otwarcie dla utworzenia (jeżeli plik już istnieje, wtedy zgłasza błąd "FileExistsError")
'a' otwarcie dla zapisu dodając zmiany na końcu pliku, jeśli istnieje
'b' tryb binarny
't' tryb tekstowy (domyślny)
'+' otwarcie dla aktualizacji (zapis i odczyt)

Oficjalna dokumentacja zawiera jeszcze bardziej szczegółowy opis trybów obsługi, więc najlepiej tam zasięgnąć więcej informacji 📖. Tutaj koncentrujemy się na trybie 'w', czyli utworzenie nowego pliku z wyczyszczeniem całej jego zawartości, jeśli istnieje ℹ️. Jeżeli zależy Ci na dopisywaniu nowej treści do pliku bez usuwania poprzedniej, sięgnij po tryb 'a' 👍.

Po wywołaniu tejże funkcji, plik zostanie utworzony i od razu przejdzie w stan "otwarty", dzięki czemu możemy wykonywać na nim operacje zapisu ❤️!

Funkcja "open" w języku Python w trybie zapisu

Funkcja "open" w kontekście zapisu, tworzy plik o podanej nazwie i rozszerzeniu (jeśli go nie ma) lub nadpisuje istniejący (jeśli istnieje).

To tyle z samego tworzenia pliku, więc możemy przejść do odpowiedzi na pytanie jak pisać treści do samego pliku 📝!

JAK WYKONAĆ ZAPIS DO PLIKU TEKSTOWEGO W JĘZYKU PYTHON?

W Pythonie są 2 proste sposoby na wykonanie zapisu treści do pliku tekstowego 👇:

Szybko zademonstruję oba zapisy ⏩!

FUNKCJA "PRINT"

Niespodzianka 🚀! Ta sama funkcja, którą 99% początkujących poznaje jako pierwszą, jest zdolna do zapisu podanego łańcucha znaków do wskazanego pliku 🤩! Do znanego Ci wywołania, wystarczy dopisać jeden dodatkowy parametr o nazwie "file" i wskazać zmienną wskazującą na plik z funkcji "open" 👇:

print('Mój łańcuch znaków', file=my_file)

I tyle 😄! Po wywołaniu tej funkcji stanie się dokładnie to samo, co przy "klasycznym" wywołaniu funkcji "print", tylko łańcuch znaków zamiast do powłoki, "wyląduje" w pliku 😁! Ponieważ domyślnie dopisuje znak nowego wiersza ('\n'), nie musisz go ręcznie dopisywać 👍!

Zapis wyniku funkcji "print" do pliku w języku Python

Funkcja "print" może zostać "przekierowana" z powłoki Pythona do wskazanego pliku, dzięki czemu wprowadzony łańcuch znaków znajdzie się w pliku!

METODA "WRITE"

Odwołując się do zmiennej przechowującej referencję do pliku (uzyskanej przez wywołanie funkcji "open"), możesz skorzystać z metody "write" i wprowadzić łańcuch znaków jaki ma wejść do pliku 👇:

my_file.write('Mój łańcuch znaków')

Ten sam efekt - dopisanie łańcucha do pliku, tylko tutaj już musimy zadbać o przechodzenie do nowego wiersza wstawiając znak nowej linii ('\n') ⚠️!

Metoda "write" pliku w języku Python

Metoda "write" pozwala na pisanie treści bezpośrednio do pliku.

JAK PRAWIDŁOWO ZAKOŃCZYĆ ZAPIS DO PLIKU TEKSTOWEGO W JĘZYKU PYTHON?

Gdy uznamy, że skończyliśmy zapisywać treść do pliku, należy koniecznie go zamknąć metodą "close"! Wywołując ją 👇:

my_file.close()

dajesz Pythonowi znak, że może zamknąć strumień i nie blokować systemu operacyjnego do przeprowadzania z nim dalszych czynności ✅. Jeżeli tego nie zrobisz, plik dalej pozostanie "otwarty", a Ty nie będziesz w stanie go zmodyfikować np. zmieniając nazwę czy usuwając go ⛔!

Metoda "close" pliku w języku Python

Metoda "close" służy do zamknięcia strumienia obsługi pliku, sprawiając że nie jest dłużej "blokowany" wobec systemu operacyjnego.

JAK ZAPISAĆ DO PLIKU POLSKIE ZNAKI W JĘZYKU PYTHON?

Jeżeli chcesz poprawnie zapisywać do pliku polskie znaki 🇵🇱, należy w wywołaniu funkcji "open" dopisać parametr "encoding" i wskazać kodowanie znaków na UTF-8 👇:

my_file = open('file.txt', 'w', encoding='utf-8')

Tylko wtedy zapobiegniesz sytuacji pojawiania się "krzaków" w miejsce polskich znaków ✅.


Temat zamknięty 😊. Jak widzisz, nic strasznego. Funkcja "open", jeden z dwóch sposobów zapisu, metoda "close" i już 😅. W niektórych innych językach będzie to wymagać dużo więcej roboty 🙂.

PODOBNE ARTYKUŁY