Урок 50. Работа с файловой системой

📁 Блок: Python Fundamentals / Файлы и модули ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя
#getcwd #chdir #exists #isfile #isdir #listdir #walk #for #in #mkdir #makedirs #rename #remove #split #basename #dirname #abspath #join #exit #print #import #if #else #open #close #elif #len #input #not #endswith #append #try #except #from #read #with #as #def #strip #lower #return #add #is

⚡ Кратко: суть темы

Файловая система — это структура файлов и папок на диске. Python предоставляет модуль os для навигации, создания, переименования и удаления объектов, а модуль sys — для чтения аргументов командной строки.

Абсолютный путь начинается от корня диска, а относительный — от текущей рабочей директории. Для сборки путей используйте os.path.join, чтобы не зависеть от операционной системы.

Ключевые конструкции: os.getcwd, os.listdir, os.path.exists, os.path.isfile, os.path.isdir, os.walk, os.path.join, sys.argv, sys.exit.

Минимальный пример:

import os, sys

if len(sys.argv) != 2:
    print("Usage: python script.py <directory>")
    sys.exit(1)

for item in os.listdir(sys.argv[1]):
    print(item)

Топ-3 ошибки: путать индексы sys.argv (первый элемент — имя скрипта); использовать os.rmdir для непустой папки; собирать пути вручную через "/" или "\\" вместо os.path.join.

О чём этот урок

Программы постоянно взаимодействуют с файлами: читают конфигурации, сохраняют результаты, обрабатывают папки с данными. Чтобы делать это надёжно, нужно уметь перемещаться по файловой системе, проверять существование объектов, создавать и удалять директории, а также запускать скрипты с параметрами из командной строки.

В уроке разберём модули os и sys: абсолютные и относительные пути, основные функции для работы с файлами и папками, рекурсивный обход os.walk и аргументы командной строки sys.argv. Также кратко познакомимся с современным модулем pathlib.

Цели

  • Понимать разницу между абсолютными и относительными путями.
  • Использовать модуль os для получения текущей директории, перехода между папками и проверки существования объектов.
  • Создавать, переименовывать и удалять файлы и директории.
  • Разбирать и собирать пути с помощью os.path.split, os.path.basename, os.path.dirname, os.path.abspath и os.path.join.
  • Рекурсивно обходить дерево директорий через os.walk.
  • Читать аргументы командной строки через sys.argv и завершать программу через sys.exit.
  • Знать, что для нового кода предпочтительнее использовать pathlib.Path.

Что повторить заранее

🎯 Что изучать дальше

  • Урок 51 — Summary session 13
  • Попрактикуйтесь в написании утилит, которые обрабатывают папки: считают файлы, ищут дубликаты, переименовывают серии файлов.
  • Загляните в ресурсы — там ссылки на документацию по os, sys и pathlib.