Lær Python
Filer og data
Arbejd sikkert med paths, tekst, JSON, CSV, bytes og store filer.
Paths og tekstfiler
from pathlib import Path
data_dir = Path.home() / ".my_app"
data_dir.mkdir(parents=True, exist_ok=True)
config_path = data_dir / "config.txt"
config_path.write_text("theme=dark\n", encoding="utf-8")
content = config_path.read_text(encoding="utf-8")Brug pathlib i stedet for selv at samle paths med skråstreger. Angiv altid encoding for tekst.
JSON
import json
settings = {"theme": "dark", "notifications": True}
config_path = data_dir / "settings.json"
with config_path.open("w", encoding="utf-8") as file:
json.dump(settings, file, indent=2, ensure_ascii=False)
with config_path.open(encoding="utf-8") as file:
loaded = json.load(file)Valider altid felter og typer efter indlæsning. JSON ved ikke, hvad din applikation forventer.
CSV
import csv
with Path("users.csv").open(newline="", encoding="utf-8") as file:
for row in csv.DictReader(file):
print(row["name"], row["email"])Bytes og hashing
from hashlib import sha256
digest = sha256()
with Path("archive.zip").open("rb") as file:
while chunk := file.read(1024 * 1024):
digest.update(chunk)
print(digest.hexdigest())Chunking gør, at store filer ikke behøver ligge samlet i RAM.
Atomisk skrivning
Skriv vigtig data til en midlertidig fil i samme mappe, flush den, og erstat derefter den gamle fil. Så efterlader et crash ikke en halvt skrevet konfiguration.
Øvelse
Lav en importør, der læser CSV, validerer hver række, rapporterer linjenummer på fejl og skriver de godkendte rækker til JSON.