Praca z plikami

Praca z plikami w Pythonie

Python oferuje potężne narzędzia do pracy z plikami. Możesz czytać, zapisywać i zarządzać różnymi typami plików.

Podstawowe operacje na plikach:

Używamy funkcji open() do otwierania plików:

# Otwieranie pliku do odczytu
with open("przyklad.txt", "r") as file:
    content = file.read()
    print(content)

Tryby otwierania plików:

  • "r" – odczyt (domyślny)
  • "w" – zapis (nadpisuje plik)
  • "a" – dopisywanie (dodaje na końcu)
  • "r+" – odczyt i zapis
  • "b" – tryb binarny (np. „rb”, „wb”)

Zapisywanie do pliku:

# Zapisywanie tekstu do pliku
with open("notatki.txt", "w") as file:
    file.write("To jest pierwsza linia\n")
    file.write("To jest druga linia\n")
    file.write("Python jest świetny!")

print("Plik został zapisany!")

Dodawanie do pliku:

# Dodawanie tekstu na końcu pliku
with open("notatki.txt", "a") as file:
    file.write("\nTo jest nowa linia dodana później\n")
    file.write("Koniec pliku")

print("Tekst został dodany do pliku!")

Różne sposoby czytania pliku:

# Czytanie całego pliku jako string
with open("przyklad.txt", "r") as file:
    content = file.read()
    print("Cały plik:")
    print(content)

# Czytanie linia po linii
with open("przyklad.txt", "r") as file:
    print("\nLinia po linii:")
    for line in file:
        print(f"Linia: {line.strip()}")

# Czytanie wszystkich linii jako lista
with open("przyklad.txt", "r") as file:
    lines = file.readlines()
    print("\nLista linii:")
    for i, line in enumerate(lines):
        print(f"Linia {i+1}: {line.strip()}")

# Czytanie tylko pierwszej linii
with open("przyklad.txt", "r") as file:
    first_line = file.readline()
    print(f"\nPierwsza linia: {first_line.strip()}")

Praca z plikami CSV:

import csv

# Zapisywanie danych CSV
data = [
    ["Imię", "Wiek", "Miasto"],
    ["Jan", "25", "Warszawa"],
    ["Anna", "30", "Kraków"],
    ["Piotr", "28", "Gdańsk"]
]

with open("osoby.csv", "w", newline="") as file:
    writer = csv.writer(file)
    writer.writerows(data)

print("Plik CSV został utworzony!")

# Czytanie danych CSV
with open("osoby.csv", "r") as file:
    reader = csv.reader(file)
    for row in reader:
        print(f"Imię: {row[0]}, Wiek: {row[1]}, Miasto: {row[2]}")

Sprawdzanie istnienia pliku:

import os

filename = "przyklad.txt"

# Sprawdzanie czy plik istnieje
if os.path.exists(filename):
    print(f"Plik {filename} istnieje")
    
    # Sprawdzanie rozmiaru pliku
    size = os.path.getsize(filename)
    print(f"Rozmiar pliku: {size} bajtów")
else:
    print(f"Plik {filename} nie istnieje")

# Listowanie plików w katalogu
files = os.listdir(".")
print("\nPliki w katalogu:")
for file in files:
    if os.path.isfile(file):
        print(f"- {file}")

Obsługa błędów przy pracy z plikami:

try:
    with open("nieistniejacy.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("Plik nie istnieje!")
except PermissionError:
    print("Brak uprawnień do odczytu pliku!")
except Exception as e:
    print(f"Wystąpił błąd: {e}")

# Bezpieczne sprawdzanie przed otwarciem
import os

filename = "dane.txt"
if os.path.exists(filename):
    with open(filename, "r") as file:
        content = file.read()
        print(content)
else:
    print(f"Plik {filename} nie istnieje")

Praca z plikami JSON:

import json

# Dane do zapisania
data = {
    "name": "Jan Kowalski",
    "age": 30,
    "city": "Warszawa",
    "hobbies": ["programowanie", "czytanie", "sport"]
}

# Zapisywanie do pliku JSON
with open("dane.json", "w") as file:
    json.dump(data, file, indent=4)

print("Dane zostały zapisane do pliku JSON!")

# Czytanie z pliku JSON
with open("dane.json", "r") as file:
    loaded_data = json.load(file)
    print("\nWczytane dane:")
    print(f"Imię: {loaded_data['name']}")
    print(f"Wiek: {loaded_data['age']}")
    print(f"Miasto: {loaded_data['city']}")
    print(f"Hobby: {', '.join(loaded_data['hobbies'])}")

Dobre praktyki:

  • Zawsze używaj with do otwierania plików
  • Sprawdzaj czy plik istnieje przed próbą odczytu
  • Obsługuj wyjątki przy pracy z plikami
  • Zamykaj pliki po użyciu (automatycznie z with)
  • Używaj odpowiednich trybów otwierania

Uwaga:

Przykłady z zewnętrznymi bibliotekami (requests, numpy, pandas) nie działają w edytorze online – wymagają instalacji w lokalnym środowisku Python. Niektóre wbudowane moduły (os, datetime) również mogą nie działać w edytorze online.

Brak odpowiedzi

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *