Глава 15 · Python и файлы
Браузер и локальный диск: две файловые системы
"Файл создан" и "файл появился на моём компьютере" — не всегда одно и то же.
Две разные файловые системы
Практики этого курса выполняются в браузере через Pyodide — настоящий Python, но работающий внутри веб-страницы, а не как обычная программа на вашем компьютере.
Файлы в браузерной практике — не файлы на вашем компьютере
Когда практика этого курса выполняет
Path("hello.txt").write_text(...), поведение open/pathlib настоящее — запись, чтение и дозапись работают по реальным правилам. Но сам файл существует только во временной файловой системе Python внутри этой вкладки браузера. Он не появляется в ~/Downloads, не виден в проводнике/Finder и исчезает при нажатии «Сбросить среду» или закрытии вкладки.код практики
Path("hello.txt").write_text(...)
запись
↓виртуальная ФС Pyodide
существует внутри вкладки браузера
↓
НЕ ваш реальный диск
Debug Lab 14: Файл создан в Pyodide, но его нет на диске
putanitsa_fs.py
# выполнено ВНУТРИ браузерной практики курса
from pathlib import Path
Path("moy_fajl.txt").write_text("привет", encoding="utf-8")
# ожидание: "теперь этот файл лежит у меня на компьютере"
# Файл действительно создан и читаем внутри этой вкладки браузера —
# но его нет ни в проводнике/Finder, ни в реальной домашней папке.
Виртуальная файловая система Pyodide полностью реальна для самой программы внутри вкладки — но она изолирована от настоящего диска компьютера. Путать «файл создан программой» с «файл появился на моём компьютере» — источник путаницы именно в браузерных средах выполнения Python.
Исправленный код
kak-poluchit-nastoyaschiy-fajl.py
# для файла на настоящем диске — запустите тот же код ЛОКАЛЬНО
# (VS Code / PyCharm / Jupyter на вашем компьютере, раздел 15.30)
from pathlib import Path
Path("moy_fajl.txt").write_text("привет", encoding="utf-8")
Когда важна настоящая персистентность на диске
Для этого раздела — практика, требующая локального запуска: настоящего файла на настоящем диске, который переживёт даже закрытие редактора.
Практика: настоящая персистентность на вашем компьютере
Локальная практика — скачайте .ipynb и выполните его в VS Code/PyCharm/Jupyter
Практика выполняется локально
- Скачайте ноутбук этого раздела и откройте его локально (VS Code, PyCharm или Jupyter).
- Выполните ячейку, создающую папку
data/и записывающую в неё UTF-8-файл. - Остановите выполнение (или закройте редактор).
- Откройте файл в проводнике/Finder или в самом редакторе — убедитесь, что он на месте.
- Запустите ноутбук ещё раз и прочитайте тот же файл — данные из первого запуска на месте, потому что это настоящий файл на настоящем диске.