Cómo obtener la máscara de permiso de un archivo en Python

Requisito previo: Python | método os.umask()

En los sistemas operativos similares a UNIX, los nuevos archivos se crean con un conjunto predeterminado de permisos. Podemos restringir o proporcionar cualquier conjunto de permisos específicos mediante la aplicación de una máscara de permisos. Usando Python, podemos obtener o establecer la máscara de permiso del archivo.

En este artículo, discutiremos cómo obtener la máscara de permiso de un archivo en Python.

Método utilizado –

os.stat() : este método se utiliza para realizarstat()una llamada al sistema en la ruta especificada. Este método se utiliza para obtener el estado de la ruta especificada.

A continuación se muestra el programa Python para obtener la máscara de permiso de un archivo:

# Python program to get file permission mask
# of a given file
  
# Import os module
import os
  
# File
filename = "./file.txt"
  
  
# Now get the status of the file
# using os.stat() method
print("Status of %s:" %filename)
status = os.stat(filename)
  
# os.stat() method will return a
# stat_result’ object of ‘os.stat_result’ class
# which will represent 
# the status of file.
print(status)
  
# st_mode attribute of
# returned 'stat_result' object
# will represent the file type and
# file mode bits (permissions).
print("\nFile type and file permission mask:", status.st_mode)
  
  
# st_mode attribute is an integer value
# but we are interested in octal value
# for file's permission mask
  
# So we will change the integer value
# to octal value
print("File type and file permission mask(in octal):",
                                  oct(status.st_mode))
  
# last 3 octal digit 
# represents the file permission mask
# and upper parts tells the file type 
# so to get the file's permission 
# we will extract last 3 octal digit
# of status.st_mode
print("\nFile permission mask (in octal):", oct(status.st_mode)[-3:])
  
# Alternate way
print("File permission mask (in octal):", oct(status.st_mode & 0o777))
Producción:

Status of ./file.txt:
os.stat_result(st_mode=33188, st_ino=801303, st_dev=2056, st_nlink=1,
st_uid=1000, st_gid=1000, st_size=409, st_atime=1561590918, st_mtime=1561590910,
st_ctime=1561590910)

File type and file permission mask: 33188
File type and file permission mask(in octal): 0o100644

File permission mask (in octal): 644
File permission mask (in octal): 0o644

El programa a continuación es la versión corta del programa anterior:

# Python program to get file permission mask
# of a given file
  
# Import os module
import os
  
# File
filename = "./file.txt"
  
# Get the file permission mask
# of the specified file
mask = oct(os.stat(filename).st_mode)[-3:]
  
# Print the mask
print("File permission mask:", mask)
Producción:

File permission mask: 644

Publicación traducida automáticamente

Artículo escrito por iAyushRaj y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *