Использование os.access()
с os.R_OK
На этом этапе мы будем использовать функцию os.access()
в Python для проверки, есть ли у файла права на чтение. Функция os.access()
принимает два аргумента: путь к файлу и флаг разрешения. Мы будем использовать os.R_OK
для проверки прав на чтение.
Сначала создадим новый файл на Python с именем check_permissions.py
в каталоге ~/project
. Откройте редактор VS Code и добавьте в файл следующий код:
import os
file_path = "my_script.py"
## Check if the file exists
if not os.path.exists(file_path):
print(f"Error: The file '{file_path}' does not exist.")
else:
## Check if the file has read permissions
if os.access(file_path, os.R_OK):
print(f"The file '{file_path}' has read permissions.")
else:
print(f"The file '{file_path}' does not have read permissions.")
Сохраните файл. Этот скрипт сначала проверяет, существует ли файл my_script.py
. Если он существует, то использует os.access()
с os.R_OK
для проверки, есть ли у файла права на чтение. Скрипт выведет сообщение, указывающее, есть ли у файла права на чтение или нет.
Теперь запустите скрипт из терминала:
python check_permissions.py
Вы должны увидеть следующий вывод:
The file 'my_script.py' has read permissions.
Это происходит потому, что по умолчанию файл my_script.py
имеет права на чтение для владельца, группы и других пользователей.
Теперь изменим права доступа файла my_script.py
, чтобы удалить права на чтение для всех, кроме владельца. Мы можем сделать это с помощью команды chmod
в терминале.
chmod 600 my_script.py
Эта команда устанавливает права доступа для my_script.py
только на чтение и запись для владельца (600 в восьмеричной записи).
Теперь запустите скрипт check_permissions.py
еще раз:
python check_permissions.py
Теперь вы должны увидеть следующий вывод:
The file 'my_script.py' does not have read permissions.
Это происходит потому, что мы удалили права на чтение для группы и других пользователей. Функция os.access()
правильно определяет, что у файла больше нет прав на чтение для пользователя, запускающего скрипт (это labex
).
Наконец, восстановим исходные права доступа файла my_script.py
:
chmod 644 my_script.py
Эта команда устанавливает права доступа для my_script.py
на чтение и запись для владельца и только на чтение для группы и других пользователей (644 в восьмеричной записи).