Python Glossary English

все Python 3Файлы и I/Oпонятие

os

os

Модуль os — интерфейс к операционной системе. Работа с файлами, директориями, переменными окружения.

Синтаксис

import os
os.getcwd()
os.listdir()
os.path.join()

os.listdir() отдаёт голые имена файлов без директории, поэтому открыть их напрямую нельзя — имя надо склеить с путём через os.path.join(); порядок имён произвольный (как отдала файловая система), сортировку делайте сами. Для самих путей в новом коде обычно берут pathlib, а за os остаются процессы, переменные окружения (os.environ) и операции вроде os.remove/os.rename.

Примеры

import os, tempfile
print(os.getcwd())  # → ? текущая директория
tmp = tempfile.gettempdir()  # кроссплатформенно: /tmp, C:\\Users\\...\\Temp
print(type(os.listdir(tmp)))  # → <class 'list'>
# path.join — кроссплатформенное соединение путей
path = os.path.join(tmp, 'subdir', 'file.txt')
print(os.path.basename(path))  # → file.txt
# path.exists / isfile / isdir
print(os.path.exists(tmp))  # → True
print(os.path.isfile(tmp))  # → False
print(os.path.isdir(tmp))   # → True
# makedirs — каталог с родителями, exist_ok не ругается на существующий
work = os.path.join(tmp, 'test_os', 'sub')
os.makedirs(work, exist_ok=True)
print(os.path.isdir(work))  # → True
# environ — переменные окружения; набор у каждой ОС свой
print(type(os.environ.get('PATH', '')))  # → <class 'str'>
# os.walk — рекурсивный обход
for root, dirs, files in os.walk(os.path.join(tmp, 'test_os')):
    print(os.path.basename(root))  # → ? имена каталогов обхода

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности