0Pricing
Python Academy · Lekcja

Zapisywanie i dopisywanie do plików

Proszę bezpiecznie zapisywać nowe dane i dopisywać je do istniejących plików.

Zapisywanie i dopisywanie do plików to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.

Wprowadzenie

Zapisywanie danych do plików i dopisywanie do nich pozwala programom zachowywać dane między kolejnymi uruchomieniami.

Tryb zapisu 'w'

open('out.txt', 'w') tworzy plik lub go skraca, jeśli już istnieje. f.write('Hello') zapisuje ciąg znaków.
# with open('out.txt', 'w') as f:
#     f.write('Hello, World!')
print('write mode demo')

writelines()

f.writelines(list_of_strings) zapisuje każdy ciąg znaków z listy. NIE dodaje automatycznie znaków nowego wiersza.
lines = ['line1\n', 'line2\n']
# with open('out.txt', 'w') as f:
#     f.writelines(lines)
print('writelines demo')

Tryb dopisywania 'a'

open('log.txt', 'a') otwiera plik w trybie dopisywania — nowe dane są dodawane na końcu bez usuwania istniejącej zawartości.
# with open('log.txt', 'a') as f:
#     f.write('new entry\n')
print('append mode demo')

Znaki nowego wiersza w write()

write() NIE dodaje automatycznie znaków nowego wiersza. Należy uwzględnić \n: f.write('line\n')
# with open('out.txt', 'w') as f:
#     f.write('first line\n')
#     f.write('second line\n')
print('newline demo')

Tryb odczytu i zapisu 'r+'

open(f,'r+') otwiera plik zarówno do odczytu, jak i zapisu. Wskaźnik znajduje się na początku — zapis NADPISUJE istniejącą zawartość.
# with open('out.txt', 'r+') as f:
#     f.seek(0, 2)  # go to end
#     f.write('appended')
print('r+ demo')

Opróżnianie buforów

f.flush() wymusza zapis zbuforowanych danych na dysku. Jest przydatne w przypadku plików dziennika, gdy potrzebne jest wyjście w czasie rzeczywistym.
# with open('log.txt', 'a') as f:
#     f.write('event\n')
#     f.flush()
print('flush demo')

print() do plików

print('text', file=f) zapisuje dane do pliku, korzystając z formatowania print (dodaje znak nowego wiersza). To wygodna alternatywa dla write().
# with open('out.txt', 'w') as f:
#     print('Hello', file=f)
print('print-to-file demo')

Wzorzec zapisu atomowego

Należy zapisać dane do pliku tymczasowego, a następnie zmienić jego nazwę na ścieżkę docelową. Zapobiega to uszkodzeniu pliku docelowego przez częściowe zapisy.
import tempfile, os
# with tempfile.NamedTemporaryFile('w', delete=False) as f:
#     f.write(data); tmp = f.name
# os.replace(tmp, 'out.txt')
print('atomic write demo')

JSON do pliku

import json; json.dump(obj, f, indent=2) serializuje dane języka Python do pliku JSON w uporządkowany sposób.
import json
data = {'name': 'Alice', 'age': 30}
# with open('data.json', 'w') as f:
#     json.dump(data, f, indent=2)
print(json.dumps(data, indent=2))

Tryb zapisu binarnego 'wb'

open('img.bin', 'wb') otwiera plik do zapisu binarnego. Należy zapisywać obiekty bytes: f.write(b'\x00\xff')
# with open('out.bin', 'wb') as f:
#     f.write(bytes([0, 255, 128]))
print('binary write demo')

Szybkie sprawdzenie

Co dzieje się z istniejącym plikiem po otwarciu go w trybie 'w'?

Podsumowanie

Tryb 'w' skraca plik, 'a' dopisuje dane, a 'r+' umożliwia odczyt i zapis. Należy używać write() z jawnym \n. print(file=f) jest wygodną alternatywą. W przypadku dzienników w czasie rzeczywistym należy opróżniać bufor.

Kontynuuj naukę

Świetna praca! Przejdź do następnej lekcji, aby kontynuować naukę.

Często zadawane pytania

Czy lekcja „Zapisywanie i dopisywanie do plików” jest bezpłatna?

Tak — pełny tekst „Zapisywanie i dopisywanie do plików” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Zapisywanie i dopisywanie do plików”?

Proszę bezpiecznie zapisywać nowe dane i dopisywać je do istniejących plików. Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Python Academy?

Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Zapisywanie i dopisywanie do plików”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?

Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Otwieranie i odczytywanie plików
  2. Zapisywanie i dopisywanie do plików
  3. Instrukcja with w pracy z plikami
  4. Praca ze ścieżkami plików za pomocą pathlib
← Powrót do Python Academy