← До списку лабораторних по Python
Повний опис / сценарій лабораторної:
Meta: навчитися працювати з файловою системою через pathlib замість сирих рядків шляхів.
Krok 1. Створити файл app/fs6.py.
Komandi: cd ~/python_lab1/src; touch app/fs6.py
Krok 2. Додати код який шукає усі .py файли у src.
Komanda: printf "from pathlib import Path
def find_py_files(base: str) -> list[Path]:
root = Path(base)
return list(root.rglob("*.py"))
if __name__ == "__main__":
files = find_py_files("..")
for p in files:
print(p)
" > app/fs6.py
Krok 3. Запустити модуль і подивитися список файлів.
Komanda: export PYTHONPATH=$(pwd); python app/fs6.py
Krok 4. Додати фільтр за розміром файлу.
Komanda: printf "from pathlib import Path
def find_large_py(base: str, min_bytes: int):
root = Path(base)
for p in root.rglob("*.py"):
if p.stat().st_size >= min_bytes:
yield p
if __name__ == "__main__":
for p in find_large_py("..", 50):
print(p, "size", p.stat().st_size)
" > app/fs6.py
Krok 5. Повторно запустити і перевірити вивід.
Komanda: python app/fs6.py
Krok 6. Додати створення каталогу для звітів.
Komanda: python -c "from pathlib import Path; Path("reports6").mkdir(exist_ok=True)"
Krok 7. Записати результати у файл звіту.
Komanda: python -c "from app.fs6 import find_large_py; from pathlib import Path; lines = [str(p) for p in find_large_py("..", 50)]; Path("reports6/report.txt").write_text("
".join(lines))"
Krok 8. Переглянути звіт.
Komanda: cat reports6/report.txt
Krok 9. Занотувати переваги pathlib над os.path для читабельності.
Krok 10. Mini zvit.
Zavdannya: опиши як би ти організував інструмент аналізу логів на основі pathlib.