OS module in Python provides functions for interacting with the operating system. OS, comes under Python’s standard utility modules. This module provides a portable way of using operating system dependent functionality. os.access() method uses the real uid/gid to test for access to path. Most operations uses the effective uid/gid, therefore, this routine can be used in a suid/sgid environment to test if the invoking user has the specified access to path.
Syntax:
os.access(path, mode)
Parameters:
path: path to be tested for access or existence mode: Should be F_OK to test the existence of path, or can be the inclusive OR of one or more of R_OK, W_OK, and X_OK to test permissions.
Following values can be passed as the mode parameter of access() to test the following:
- os.F_OK: Tests existence of the path.
- os.R_OK: Tests readability of the path.
- os.W_OK: Tests writability of the path.
- os.X_OK: Checks if path can be executed.
Returns: True if access is allowed, else returns False. Code #1: Understand access() method
Python3
# Python program trying to access # file with different mode parameter # importing all necessary libraries import os import sys # Different mode parameters will # return True if access is allowed, # else returns False. # Assuming only read operation is allowed on file # Checking access with os.F_OK path1 = os.access("gfg.txt", os.F_OK) print ("Exists the path:", path1) # Checking access with os.R_OK path2 = os.access("gfg.txt", os.R_OK) print ("Access to read the file :", path2) # Checking access with os.W_OK path3 = os.access("gfg.txt", os.W_OK) print ("Access to write the file :", path3) # Checking access with os.X_OK path4 = os.access("gfg.txt", os.X_OK) print ("Check if path can be executed:", path4) |
Output:
Exists the path: True Access to read the file: True Access to write the file: False Check if path can be executed: False
Code #2: Code to open a file after validating access is allowed
Python3
# Python program to open a file # after validating the access # checking readability of the path if os.access("gfg.txt", os.R_OK): # open txt file as file with open ("gfg.txt") as file : return file .read() # in case can't access the file return "Facing some issue" |
Output:
Facing some issue