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.

Wypróbuj to rozwiązanie w Edytorze

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())
Wyjście terminala
--- 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

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.