Jak odczytać plik w Pythonie (tekst i JSON)
Naucz się czytać pliki w Pythonie. Opanuj obsługę instrukcji open, readline, readlines i bezpiecznej obsługi wyjątków plików.
Przegląd
Obsługa plików jest niezbędną umiejętnością każdego programisty Pythona. Odczyt danych z plików umożliwia przetwarzanie dokumentów tekstowych, konfiguracji, logów, baz danych i ustrukturyzowanych zbiorów danych. Python sprawia, że operacje na plikach są niezwykle proste dzięki wbudowanej funkcji „open()”.
Podczas pracy z plikami najważniejszą najlepszą praktyką jest użycie instrukcji „with”, która tworzy menedżera kontekstu. Wzorzec `with open(...)` gwarantuje, że plik zostanie bezpiecznie i prawidłowo zamknięty, gdy tylko wykonanie opuści blok, nawet jeśli wewnątrz wystąpi wyjątek. Zapomnienie o zamknięciu plików może spowodować wycieki pamięci, uszkodzenie plików i zablokowanie zasobów innych procesów systemowych.
Python udostępnia kilka metod odczytu danych po otwarciu pliku. Metoda `.read()` zwraca całą zawartość pliku jako pojedynczy ciąg znaków. Metoda `.readline()` odczytuje pojedynczą linię, co czyni ją idealną do iteracji po ogromnych plikach, które nie mieszczą się w pamięci. Metoda `.readlines()` odczytuje wszystkie linie i zwraca je jako listę ciągów znaków. Zrozumienie, której metody użyć, zapobiega wyczerpaniu pamięci i sprawia, że programy są bardziej skalowalne.
Dane wyjściowe kodu i wykonania
Ten skrypt demonstruje bezpieczne odczytywanie zawartości pliku przy użyciu menedżera kontekstu, odczyt wiersz po wierszu i obsługę błędów.
# Writing a dummy file first
with open("sample.txt", "w") as f:
f.write("Line 1: Welcome to PyRun!\nLine 2: Python runs in the browser.\nLine 3: Clean and simple.")
# 1. Read entire file contents
with open("sample.txt", "r") as file:
content = file.read()
print("--- Entire File ---")
print(content)
# 2. Read line-by-line (Memory efficient for large files)
print("\n--- Line by Line ---")
with open("sample.txt", "r") as file:
for line in file:
print("Read line:", line.strip())--- Entire File ---
Line 1: Welcome to PyRun!
Line 2: Python runs in the browser.
Line 3: Clean and simple.
--- Line by Line ---
Read line: Line 1: Welcome to PyRun!
Read line: Line 2: Python runs in the browser.
Read line: Line 3: Clean and simple.Wdrażanie krok po kroku
- Użyj instrukcji with open("nazwa pliku", "r") jako pliku, aby bezpiecznie otworzyć plik do odczytu.
- Wywołaj funkcję file.read(), aby załadować całą zawartość pliku do zmiennej.
- Wykonaj iterację bezpośrednio po obiekcie pliku za pomocą pętli for, aby efektywnie odczytać go linia po linii.
- Zawsze określaj kodowanie (np. encoding="utf-8"), aby zapewnić zgodność znaków międzynarodowych.
Często zadawane pytania
Dlaczego powinienem używać instrukcji with do otwierania plików?
Instrukcja with tworzy menedżera kontekstu, który automatycznie zamyka plik po wyjściu z bloku, nawet jeśli wystąpią błędy.
Jak sobie poradzić z błędem FileNotFoundError?
Zawiń instrukcję open() w blok try-except, przechwytując FileNotFoundError: try: with open(...) ... z wyjątkiem FileNotFoundError: print("Nie znaleziono pliku!").
Powiązane tematy
Dowiedz się, jak zapisywać tekst do plików w Pythonie. Opanuj różnicę między trybami zapisu („w”) i dodawania („a”) dzięki bezpiecznym menedżerom kontekstu.
Jak obsługiwać wyjątki w PythonieDowiedz się, jak obsługiwać wyjątki w Pythonie za pomocą bloków try, z wyjątkiem, else i wreszcie. Napisz bezbłędny i odporny na awarie kod w Pythonie.
Polecane zasoby Pythona
Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.
Wyjaśnienie zmiennych i typów danych w Pythonie
Zrozumienie zmiennych Pythona i podstawowych typów danych (łańcuchy, liczby całkowite, zmiennoprzecinkowe, wartości logiczne). Kompletny przewodnik dla początkujących dotyczący przydzielania pamięci w Pythonie.
Ściągawka dotycząca metod słownika Pythona
Poznaj metody słownikowe Pythona. Kompletny przewodnik dotyczący wstawiania, pobierania, aktualizacji i sprawdzania par klucz-wartość.
Python kontra JavaScript: który język programowania jest najlepszy?
Kompleksowe porównanie Pythona i JavaScript. Poznaj różnice w składni, wydajność, przypadki użycia (backend vs frontend) i przykłady kodowania.