Python'un zengin standart kütüphanesi, harici paket kurmadan dosya sistemi operasyonları ve veritabanı işlemleri yapmanızı sağlar. pathlib, os ve sqlite3 modülleri, otomasyon script'lerinin bel kemiğini oluşturur.
pathlib — Modern Dosya Yolu Yönetimi
os.path modülü yerine Python 3.4+ ile gelen pathlib çok daha ergonomik bir API sunar:
// PYTHON //
from pathlib import Path# Mevcut dizincwd = Path.cwd()home = Path.home()# Yol birleştirme — "/" operatörü ile!config_dir = home / ".config" / "myapp"log_file = cwd / "logs" / "app.log"# Yol bilgileriprint(log_file.name) # app.logprint(log_file.stem) # appprint(log_file.suffix) # .logprint(log_file.parent) # /current/dir/logs# Var mı kontrolif not config_dir.exists(): config_dir.mkdir(parents=True, exist_ok=True)# Dosya okuma / yazmacontent = log_file.read_text(encoding="utf-8")log_file.write_text("Yeni içerik", encoding="utf-8")
Dizin Tarama ve Glob
// PYTHON //
from pathlib import Pathproject = Path(".")# Tek seviyefor py_file in project.glob("*.py"): print(py_file)# Özyinelemeli aramafor mdx_file in project.rglob("*.mdx"): print(f"{mdx_file.stat().st_size:>10} bytes — {mdx_file}")# Belirli desene uyan dosyaları listeleimages = sorted(project.rglob("*.{png,jpg,webp}"))
def init_db() -> None: with get_conn() as conn: conn.executescript(""" CREATE TABLE IF NOT EXISTS urls ( id INTEGER PRIMARY KEY AUTOINCREMENT, url TEXT NOT NULL UNIQUE, title TEXT, scraped INTEGER DEFAULT 0, created TEXT DEFAULT (datetime('now')) ); CREATE INDEX IF NOT EXISTS idx_urls_scraped ON urls(scraped); """)def insert_url(url: str, title: str | None = None) -> int: with get_conn() as conn: cursor = conn.execute( "INSERT OR IGNORE INTO urls (url, title) VALUES (?, ?)", (url, title), ) return cursor.lastrowid or 0def get_pending(limit: int = 100) -> list[sqlite3.Row]: with get_conn() as conn: return conn.execute( "SELECT id, url FROM urls WHERE scraped = 0 LIMIT ?", (limit,), ).fetchall()def mark_done(url_id: int) -> None: with get_conn() as conn: conn.execute( "UPDATE urls SET scraped = 1 WHERE id = ?", (url_id,), )
pathlib, os ve sqlite3 üçlüsü, Python otomasyon dünyasının temel taşlarıdır. Bu standart kütüphaneleri ustaca kullanmak, dış bağımlılık olmadan sağlam ve taşınabilir scriptler yazmanızı sağlar. Bir sonraki adımda bu bilgileri Playwright web scraping ile birleştireceğiz.