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
withdo 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