Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 219

Вызов link() создает жесткую ссылку, а symlink() — символьную ссылку. Функция

islink() проверяет, является ли файл символьной ссылкой.

284

Глава 10. Системы

Вот так можно создать жесткую ссылку на существующий файл oops.txt из

нового файла yikes.txt:

>>> os.link('oops.txt', 'yikes.txt')

>>> os.path.isfile('yikes.txt')

True

Для того чтобы создать символьную ссылку на существующий файл oops.txt

из нового файла jeepers.txt, используйте следующий код:

>>> os.path.islink('yikes.txt')

False

>>> os.symlink('oops.txt', 'jeepers.txt')

>>> os.path.islink('jeepers.txt')

True

Изменяем разрешения

с помощью функции chmod()

В системах Unix функция chmod() изменяет разрешение на использование файла.

Можно задать возможность читать, записывать и выполнять файл для пользова-

теля (обычно для вас, если файл создавали вы), основной группы, в которой на-

ходится пользователь, и остального мира. Команда принимает сильно сжатое вось-

меричное значение (в системе счисления с основанием 8), которое содержит в себе

информацию о пользователе, группе и другие разрешения. Например, для того

чтобы указать, что файл oops.txt доступен только для чтения своему владельцу,

введите следующий код:

>>> os.chmod('oops.txt', 0o400)

Если вы не хотите работать с таинственными восьмеричными значениями и вам

приятнее работать с непонятными (немного) таинственными символами, можете

импортировать некоторые константы из модуля stat и использовать выражение,

аналогичное следующему:

>>> import stat

>>> os.chmod('oops.txt', stat.S_IRUSR)

Изменение владельца файла

с помощью функции chown()

Эта функция также характерна для систем Unix/Linux/Mac. Вы можете изменить

владельца и/или группу, указав числовой идентификатор пользователя ID (uid)

и идентификатор группы (gid):

>>> uid = 5

>>> gid = 22

>>> os.chown('oops', uid, gid)

Каталоги

285

Получаем pathname

с помощью функции abspath()

Эта функция расширяет относительное имя до абсолютного. Если вы находитесь

в папке /usr/gaberlunzie, в которой лежит файл oops.txt, то можете воспользовать-

ся следующим кодом:

>>> os.path.abspath('oops.txt')

'/usr/gaberlunzie/oops.txt'