справочник по Python. мм isbn 9785932861578 9 785932 861578
Скачать 4.21 Mb.
|
Описание O_RDONLY Открыть файл для чтения. O_WRONLY Открыть файл для записи. O_RDWR Открыть файл для чтения и записи (для изменения). O_APPEND Открыть файл для добавления в конец. O_CREAT Создать файл, если он не существует. O_NONBLOCK Установить неблокирующий режим выполнения операций создания, чтения и записи (UNIX). O_NDELAY То же, что и O_NONBLOCK (UNIX). O_DSYNC Установить режим синхронной записи (UNIX). O_NOCTTY При открытии устройства не назначать его управляющим терминалом (UNIX). O_TRUNC Если файл существует, усечь его длину до нуля. O_RSYNC Установить режим синхронного чтения (UNIX). O_SYNC Установить режим синхронной записи (UNIX). O_EXCL Сообщать об ошибке, если файл существует и установлен флаг O_CREAT. O_EXLOCK Установить исключительную блокировку на файл. O_SHLOCK Установить разделяемую блокировку на файл. O_ASYNC Установить асинхронный режим ввода, когда при появлении входных данных генерируется сигнал SIGIO. 482 Глава 19. Службы операционной системы Значение Описание O_DIRECT У становить режим непосредственного ввода-вывода, когда операции чтения и записи выполняются непосредственно с диском, а не с системными буферами. O_DIRECTORY Возбудить исключение, если файл не является каталогом. O_NOFOLLOW Не следовать за символическими ссылками. O_NOATIME Не обновлять время последнего обращения к файлу. O_TEXT Установить текстовый режим (Windows). O_BINARY Установить двоичный режим (Windows). O_NOINHERIT Файл не должен наследоваться дочерними процессами. O_SHORT_LIVED Подсказать системе, что файл используется для сохранения данных на короткое время (Windows). O_TEMPORARY Удалить файл после закрытия (Windows). O_RANDOM Подсказать системе, что файл используется в режиме произ- вольного доступа (Windows). O_SEQUENTIAL Подсказать системе, что файл используется в режиме после- довательного доступа (Windows). При использовании синхронных режимов (O_SYNC, O_DSYNC, O_RSYNC) опера- ции ввода-вывода принудительно блокируются, пока они фактически не будут завершены на аппаратном уровне (например, операция записи вер- нет управление вызывающей программе, только когда байты физически будут записаны на диск). В аргументе mode передается битная маска с раз- решениями, составленная из значений следующих восьмеричных значе- ний (которые объявлены как константы в модуле stat), объединенных би- товой операцией ИЛИ: Режим Описание 0100 Пользователь обладает правом на выполнение (stat.S_IXUSR). 0200 Пользователь обладает правом на запись (stat.S_IWUSR). 0400 Пользователь обладает правом на чтение (stat.S_IRUSR). 0700 Пользователь обладает правом на чтение/запись/выполнение (stat.S_IRWXU). 0010 Группа обладает правом на выполнение (stat.S_IXGRP). 0020 Группа обладает правом на запись (stat.S_IWGRP). 0040 Группа обладает правом на чтение (stat.S_IRGRP). 0070 Группа обладает правом на чтение/запись/выполнение (stat.S_IRWXG). 0001 Остальные обладают правом на выполнение (stat.S_IXOTH). (продолжение) Модуль os 483 Режим Описание 0002 Остальные обладают правом на запись (stat.S_IWOTH). 0004 Остальные обладают правом на чтение (stat.S_IROTH). 0007 Остальные обладают правом на чтение/запись/выполнение (stat.S_IRWXO). 4000 Установить режим UID (stat.S_ISUID). 2000 Установить режим GID (stat.S_ISGID). 1000 Установить бит закрепления (stat.S_ISVTX). По умолчанию в аргументе mode передается значение 0777 & ˜umask, где пара- метр umask используется для удаления выбранных разрешений. Например, значение 0022 в параметре umask приведет к удалению разрешения на за- пись для группы и остальных. Изменить значение umask можно с помощью функции os.umask(). Настройка параметра umask не оказывает никакого эффекта в Windows. openpty() Открывает псевдотерминал и возвращает пару дескрипторов (master,slave) для устройств PTY и TTY. Доступна в некоторых версиях UNIX. pipe() Создает неименованный канал, который может использоваться для одно- направленного взаимодействия с другим процессом. Возвращает пару де- скрипторов (r, w), которые могут использоваться для чтения и записи соот- ветственно. Обычно эта функция вызывается непосредственно перед функ- эта функция вызывается непосредственно перед функ- эта функция вызывается непосредственно перед функ- функция вызывается непосредственно перед функ- функция вызывается непосредственно перед функ- вызывается непосредственно перед функ- вызывается непосредственно перед функ- непосредственно перед функ- непосредственно перед функ- перед функ- перед функ- функ- функ- цией fork(). После вызова fork() передающий процесс закрывает канал, от- крытый для чтения, а принимающий процесс закрывает канал, открытый на запись. С этого момента канал активируется и может использоваться для передачи данных от одного процесса другому с помощью функций write() и read() (UNIX). read(fd, n) Читает до n байтов из дескриптора fd. Возвращает строку прочитанных байтов. tcgetpgrp(fd) Возвращает идентификатор группы процессов для управляющего терми- нала, заданного дескриптором fd (UNIX). tcsetpgrp(fd, pg) Устанавливает идентификатор группы процессов для управляющего тер- минала, заданного дескриптором fd (UNIX). ttyname(fd) Возвращает строку с именем файла устройства терминала, на который ссылается дескриптор fd. Если дескриптор fd не связан с устройством тер- минала, возбуждается исключение OSError (UNIX). 484 Глава 19. Службы операционной системы write(fd, str) Записывает строку байтов str в файл с дескриптором fd. Возвращает коли- чество байтов, которые фактически были записаны. Файлы и каталоги Следующие функции и переменные используются при работе с файлами и каталогами в файловой системе. Чтобы обойти различия в схемах имено- вания файлов, можно использовать следующие переменные, содержащие информацию об устройстве имен в файловой системе: Переменная Описание altsep Альтернативный символ, используемый операционной системой для отделения элементов пути в файловой системе или None, если существует только один символ-разделитель. В DOS и Windows эта переменная имеет значение ‘/’, где переменная sep содержит символ обратного слэша. curdir Строка, используемая для ссылки на текущий рабочий каталог: ‘.’ – в UNIX и Windows, и ‘:’ – в Macintosh. devnul Путь к пустому устройству (например, /dev/null). extsep Символ, отделяющий основное имя файла от расширения (напри- мер, символ ‘.’ в имени ‘foo.txt’). pardir Строка, используемая для ссылки на родительский каталог: ‘..’ – в UNIX и Windows, и ‘::’ – в Macintosh. pathsep Символ, используемый для отделения компонентов пути поиска (например, в переменной окружения $PATH): ‘:’ – в UNIX, ‘;’ – в DOS и Windows. sep Символ, используемый для отделения элементов пути в файловой системе: ‘/’ – в UNIX и Windows, и ‘:’ в Macintosh. Для работы с файлами используются следующие функции: access(path, accessmode) Проверяет разрешения для данного процесса на чтение/запись/выполне- разрешения для данного процесса на чтение/запись/выполне- разрешения для данного процесса на чтение/запись/выполне- для данного процесса на чтение/запись/выполне- для данного процесса на чтение/запись/выполне- данного процесса на чтение/запись/выполне- данного процесса на чтение/запись/выполне- процесса на чтение/запись/выполне- процесса на чтение/запись/выполне- на чтение/запись/выполне- на чтение/запись/выполне- чтение/запись/выполне- чтение/запись/выполне- /запись/выполне- запись/выполне- /выполне- выполне- ние файла path. В аргументе accessmode передается значение R_OK, W_OK, X_OK или F_OK для проверки разрешения на чтение, запись, выполнение или про- верки на существование соответственно. Возвращает 1, если разрешение имеется, 0 – если нет. chflags(path, flags) Изменяет флаги для файла path. В аргументе flags передается битная маска, составленная из значений констант, перечисленных ниже, объединенных битовой операцией ИЛИ. Флаги, имена которых начинаются с UF_, могут устанавливаться любым пользователем, тогда как флаги, имена которых начинаются с SF_, могут изменяться только суперпользователем (UNIX). Модуль os 485 Флаг Описание stat.UF_NODUMP Н е включать файл в вывод. stat.UF_IMMUTABLE Файл доступен только для чтения. stat.UF_APPEND Файл поддерживает только операцию добавления в конец. stat.UF_OPAQUE Каталог непрозрачен. stat.UF_NOUNLINK Файл не может быть удален или переименован. stat.SF_ARCHIVED Файл может быть архивирован. stat.SF_IMMUTABLE Файл доступен только для чтения. stat.SF_APPEND Файл поддерживает только операцию добавления в конец. stat.SF_NOUNLINK Файл не может быть удален или переименован. stat.SF_SNAPSHOT Файл является файлом мгновенного снимка. chmod(path, mode) Изменяет режим доступа к файлу path. Аргумент mode может принимать те же значения, что и в функции open(), описанной выше (UNIX и Windows). chown(path, uid, gid) Изменяет идентификатор владельца и группы для файла path в соответ- ствии с числовыми значениями uid и gid. Чтобы сохранить один из иденти- фикаторов неизменным, в соответствующем аргументе uid или gid можно передать значение -1 (UNIX). lchflags(path, flags) То же, что и chflags(), но не следует по символическим ссылкам (UNIX). lchmod(path, mode) То же, что и chflags(), за исключением того, что если файл path является символической ссылкой, изменения будут затрагивать саму ссылку, а не файл, на который она ссылается. lchown(path, uid, gid) То же, что и chown(), но не следует по символическим ссылкам (UNIX). link(src, dst) Создает жесткую ссылку с именем dst, указывающую на файл src (UNIX). listdir(path) Возвращает список с именами элементов каталога path. Элементы могут следовать в списке в произвольном порядке, и в их число не включаются специальные элементы ‘.’ и ‘..’. Если в аргументе path передается строка Юникода, возвращаемый список будет содержать только строки Юникода. Имейте в виду, что если имя какого-либо файла в каталоге не сможет быть преобразовано в Юникод, оно будет просто пропущено. Если в аргументе path передается строка байтов, то все имена в списке будут представлены строками байтов. 486 Глава 19. Службы операционной системы lstat(path) Напоминает функцию stat(), но не следует по символическим ссылкам (UNIX). makedev(major, minor) Создает номер устройства, где аргументы major и minor определяют старший и младший номер устройства соответственно (UNIX). major(devicenum) Возвращает старший номер устройства для номера устройства devicenum, созданным вызовом функции makedev(). minor(devicenum) Возвращает младший номер устройства для номера устройства devicenum, созданным вызовом функции makedev(). makedirs(path [, mode]) Функция рекурсивного создания каталога. Напоминает функцию mkdir(), но создает все промежуточные каталоги, содержащие конечный каталог. Если конечный каталог в пути path уже существует или не может быть соз- дан, возбуждает исключение OSError. mkdir(path [, mode]) Создает каталог path с флагами режима mode. По умолчанию аргумент mode принимает значение 0777. В системах, отличных от UNIX, аргумент mode может не учитываться или игнорироваться. mkfifo(path [, mode]) Создает очередь FIFO (именованный канал) с именем path и с флагами ре- жима mode. По умолчанию аргумент mode принимает значение 0666 (UNIX). mknod(path [, mode, device]) Создает файл устройства. В аргументе path передается имя файла, аргу- мент mode определяет права доступа и тип файла, а аргумент device – номер устройства, созданный с помощью функции os.makedev(). Аргумент mode может принимать те же значения, что и в функции open(), определяющие права доступа к файлу. Кроме того, для определения типа файла в аргумент mode добавляются флаги stat.S_IFREG, stat.S_IFCHR, stat.S_IFBLK и stat.S_IFIFO (UNIX). pathconf(path, name) Возвращает значения системных параметров настройки, имеющих отно- шение к имени path. В аргументе name передается строка с именем требуемо- го параметра. Имена доступных параметров были перечислены в описании функции fpathconf() (UNIX). readlink(path) Возвращает строку, содержащую путь, на который указывает символиче- ская ссылка path (UNIX). Модуль os 487 remove(path) У даляет файл path. Идентична функции unlink(). removedirs(path) Функция рекурсивного удаления каталогов. Действует так же, как функ- ция rmdir(), за исключением того, что в случае успешного удаления конеч- ного каталога она последовательно начнет удалять каталоги в пути path, начиная с самого правого, пока не будут удалены все указанные каталоги либо пока не будет встречена ошибка (которая игнорируется, потому что обычно появление ошибки означает, что родительский каталог не пуст). Если конечный каталог в пути path не может быть удален, возбуждает ис- ключение OSError. rename(src, dst) Переименовывает файл или каталог src в dst. renames(old, new) Выполняет рекурсивное переименование каталогов или файлов. Действует так же, как функция rename(), за исключением того, что сначала пытает- ся создать все промежуточные каталоги в пути new. После переименования она последовательно удаляет каталоги в пути old, начиная с самого право- го, с помощью функции removedirs(). rmdir(path) Удаляет каталог path. stat(path) Выполняет системный вызов stat() для файла с именем path, чтобы полу- чить информацию о нем. Возвращает объект, атрибуты которого содержат информацию о файле. Ниже перечислены наиболее типичные атрибуты: Атрибут Описание st_mode Режим доступа. st_ino Номер индексного узла (inode). st_dev Номер устройства, где располагается индексный узел. st_nlink Количество ссылок на индексный узел. st_uid Идентификатор пользователя, которому принадлежит файл. st_gid Идентификатор группы, которой принадлежит файл. st_size Размер файла в байтах. st_atime Время последнего обращения к файлу. st_mtime Время последнего изменения файла. st_ctime Время последнего изменения информации о состоянии файла. В зависимости от типа операционной системы этот объект может содер- жать дополнительные атрибуты. Объект, возвращаемый функцией stat(), 488 Глава 19. Службы операционной системы может также рассматриваться как кортеж из 10 элементов (st_mode, st_ino, st_dev, st_nlink, st_uid, st_gid, st_size, st_atime, st_mtime, st_ctime) . По- По- следняя форма представления объекта предоставляется для сохранения обратной совместимости. Модуль stat определяет константы, которые мо- гут использоваться для получения значений полей в этом кортеже. stat_float_times([newvalue]) Возвращает True, если значения времени, возвращаемые функцией stat(), являются не целыми числами, а числами с плавающей точкой. Поведе- ние функции можно изменить, передав логическое значение в аргументе newvalue statvfs(path) Производит системный вызов statvfs() для указанного пути path, чтобы получить информацию о файловой системе. Возвращает объект, атрибуты которого содержат информацию о файловой системе. Ниже перечислены наиболее типичные атрибуты: Атрибут Описание f_bsize Рекомендуемый размер блока f_frsize Базовый размер блока f_blocks Общее количество блоков в файловой системе f_bfree Общее количество свободных блоков f_bavail Количество свободных блоков, доступных обычному пользователю f_files Общее количество индексных узлов f_ffree Общее количество свободных индексных узлов f_favail Количество свободных индексных узлов, доступных обычному пользователю f_flag Флаги (в зависимости от системы) f_namemax Максимальная длина имени файла Возвращаемый объект может вести себя, как кортеж, содержащий значе- объект может вести себя, как кортеж, содержащий значе- объект может вести себя, как кортеж, содержащий значе- может вести себя, как кортеж, содержащий значе- может вести себя, как кортеж, содержащий значе- вести себя, как кортеж, содержащий значе- вести себя, как кортеж, содержащий значе- себя, как кортеж, содержащий значе- себя, как кортеж, содержащий значе- , как кортеж, содержащий значе- как кортеж, содержащий значе- кортеж, содержащий значе- кортеж, содержащий значе- , содержащий значе- содержащий значе- значе- значе- ния этих атрибутов в указанном порядке. Стандартный модуль statvfs объ- являет константы, которые могут использоваться для извлечения инфор- мации из этого кортежа (UNIX). |