Глава 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
Практика выполняется локально
Открыть практику →
  1. Скачайте ноутбук этого раздела и откройте его локально (VS Code, PyCharm или Jupyter).
  2. Выполните ячейку, создающую папку data/ и записывающую в неё UTF-8-файл.
  3. Остановите выполнение (или закройте редактор).
  4. Откройте файл в проводнике/Finder или в самом редакторе — убедитесь, что он на месте.
  5. Запустите ноутбук ещё раз и прочитайте тот же файл — данные из первого запуска на месте, потому что это настоящий файл на настоящем диске.