os¶
Модуль os
предоставляет множество функций для работы с операционной системой, причём их поведение, как правило, не зависит от ОС, поэтому программы остаются переносимыми. Здесь будут приведены наиболее часто используемые из них.
Будьте внимательны: некоторые функции из этого модуля поддерживаются не всеми ОС.
os.name
- имя операционной системы. Доступные варианты:
posix
,nt
,mac
,os2
,ce
,java
. os.environ
- словарь переменных окружения. Изменяемый (можно добавлять и удалять переменные окружения).
os.getlogin()
- имя пользователя, вошедшего в терминал (Unix).
os.getpid()
- текущий
id
процесса. os.uname()
- информация об ОС. возвращает объект с атрибутами:
sysname
- имя операционной системы,nodename
- имя машины в сети (определяется реализацией),release
- релиз,version
- версия,machine
- идентификатор машины. os.access(path, mode, *, dir_fd=None, effective_ids=False, follow_symlinks=True)
- проверка доступа к объекту у текущего пользователя. Флаги:
os.F_OK
- объект существует,os.R_OK
- доступен на чтение,os.W_OK
- доступен на запись,os.X_OK
- доступен на исполнение. os.chdir(path)
- смена текущей директории.
os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)
- смена прав доступа к объекту (
mode
- восьмеричное число). os.chown(path, uid, gid, *, dir_fd=None, follow_symlinks=True)
- меняет
id
владельца и группы (Unix). os.getcwd()
- текущая рабочая директория.
os.link(src, dst, *, src_dir_fd=None, dst_dir_fd=None, follow_symlinks=True)
- создаёт жёсткую ссылку.
os.listdir(path=".")
- список файлов и директорий в папке.
os.mkdir(path, mode=0o777, *, dir_fd=None)
- создаёт директорию.
OSError
, если директория существует. os.makedirs(path, mode=0o777, exist_ok=False)
- создаёт директорию, создавая при этом промежуточные директории.
os.remove(path, *, dir_fd=None)
- удаляет путь к файлу.
os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)
- переименовывает файл или директорию из
src
вdst
. os.renames(old, new)
- переименовывает
old
вnew
, создавая промежуточные директории. os.replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None)
- переименовывает из
src
вdst
с принудительной заменой. os.rmdir(path, *, dir_fd=None)
- удаляет пустую директорию.
os.removedirs(path)
- удаляет директорию, затем пытается удалить родительские директории, и удаляет их рекурсивно, пока они пусты.
os.symlink(source, link_name, target_is_directory=False, *, dir_fd=None)
- создаёт символическую ссылку на объект.
os.sync()
- записывает все данные на диск (Unix).
os.truncate(path, length)
- обрезает файл до длины
length
. os.utime(path, times=None, *, ns=None, dir_fd=None, follow_symlinks=True)
- модификация времени последнего доступа и изменения файла. Либо
times
- кортеж (время доступа в секундах, время изменения в секундах), либоns
- кортеж (время доступа в наносекундах, время изменения в наносекундах). os.walk(top, topdown=True, onerror=None, followlinks=False)
- генерация имён файлов в дереве каталогов, сверху вниз (если
topdown
равенTrue
), либо снизу вверх (еслиFalse
). Для каждого каталога функцияwalk
возвращает кортеж (путь к каталогу, список каталогов, список файлов). os.system(command)
- исполняет системную команду, возвращает код её завершения (в случае успеха
0
). os.urandom(n)
n
случайных байт. Возможно использование этой функции в криптографических целях.
os.path¶
os.path
является вложенным модулем в модуль os
, и реализует некоторые полезные функции для работы с путями.
os.path.abspath(path)
- возвращает нормализованный абсолютный путь.
os.path.basename(path)
- базовое имя пути (эквивалентно
os.path.split(path)[1]
). os.path.commonprefix(list)
- возвращает самый длинный префикс всех путей в списке.
os.path.dirname(path)
- возвращает имя директории пути
path
. os.path.exists(path)
- возвращает
True
, еслиpath
указывает на существующий путь или дескриптор открытого файла. os.path.expanduser(path)
- заменяет
~
или~user
на домашнюю директорию пользователя. os.path.expandvars(path)
- возвращает аргумент с подставленными переменными окружения (
$name
или${name}
заменяются переменной окруженияname
). Несуществующие имена не заменяет. На Windows также заменяет%name%
. os.path.getatime(path)
- время последнего доступа к файлу, в секундах.
os.path.getmtime(path)
- время последнего изменения файла, в секундах.
os.path.getctime(path)
- время создания файла (Windows), время последнего изменения файла (Unix).
os.path.getsize(path)
- размер файла в байтах.
os.path.isabs(path)
- является ли путь абсолютным.
os.path.isfile(path)
- является ли путь файлом.
os.path.isdir(path)
- является ли путь директорией.
os.path.islink(path)
- является ли путь символической ссылкой.
os.path.ismount(path)
- является ли путь точкой монтирования.
os.path.join(path1[, path2[, ...]])
- соединяет пути с учётом особенностей операционной системы.
os.path.normcase(path)
- нормализует регистр пути (на файловых системах, не учитывающих регистр, приводит путь к нижнему регистру).
os.path.normpath(path)
- нормализует путь, убирая избыточные разделители и ссылки на предыдущие директории. На Windows преобразует прямые слеши в обратные.
os.path.realpath(path)
- возвращает канонический путь, убирая все символические ссылки (если они поддерживаются).
os.path.relpath(path, start=None)
- вычисляет путь относительно директории
start
(по умолчанию - относительно текущей директории). os.path.samefile(path1, path2)
- указывают ли
path1
иpath2
на один и тот же файл или директорию. os.path.sameopenfile(fp1, fp2)
- указывают ли дескрипторы
fp1
иfp2
на один и тот же открытый файл. os.path.split(path)
- разбивает путь на кортеж (голова, хвост), где хвост - последний компонент пути, а голова - всё остальное. Хвост никогда не начинается со слеша (если путь заканчивается слешем, то хвост пустой). Если слешей в пути нет, то пустой будет голова.
os.path.splitdrive(path)
- разбивает путь на пару (привод, хвост).
os.path.splitext(path)
- разбивает путь на пару (
root
,ext
), гдеext
начинается с точки и содержит не более одной точки. os.path.supports_unicode_filenames
- поддерживает ли файловая система Unicode.