El módulo OS en Python proporciona funciones para interactuar con el sistema operativo. OS viene bajo los módulos de utilidad estándar de Python. Este módulo proporciona una forma portátil de usar la funcionalidad dependiente del sistema operativo.
os.scandir()
El método del módulo os produce os.DirEntry
objetos correspondientes a las entradas en el directorio dado por la ruta especificada. os.DirEntry
El objeto tiene varios atributos y métodos que se utilizan para exponer la ruta del archivo y otros atributos del archivo de la entrada del directorio.
stat()
El método en el os.DirEntry
objeto se usa para obtener el objeto os.stat_result para una entrada.
Nota: os.DirEntry
los objetos están destinados a ser usados y desechados después de la iteración, ya que los atributos y métodos del objeto almacenan en caché sus valores y nunca los vuelven a recuperar. Si se han cambiado los metadatos del archivo o si ha pasado mucho tiempo desde que se llamó al método os.scandir() . no obtendremos información actualizada.
Sintaxis: os.DirEntry.stat(*, follow_symlinks = True)
Parámetro:
follow_symlinks: se requiere un valor booleano para este parámetro. Si la entrada es un enlace simbólico y follow_symlinks es True, entonces el método operará en la ruta a la que apunta el enlace simbólico. Si la entrada es un enlace simbólico y follow_symlinks es False, el método operará en el enlace simbólico mismo. Si la entrada no es un enlace simbólico, se ignora el parámetro follow_symlinks. El valor predeterminado de este parámetro es True.Valor devuelto: este método devuelve un objeto os.stat_result para la entrada. Los siguientes son los atributos del objeto os.stat_result:
- st_mode : Representa el tipo de archivo y los bits de modo de archivo (permisos).
- st_ino : Representa el número de iNode en Unix y el índice del archivo en la plataforma Windows.
- st_dev : representa el identificador del dispositivo en el que reside este archivo.
- st_nlink : Representa el número de enlaces duros.
- st_uid : Representa el identificador de usuario del propietario del archivo.
- st_gid : Representa el identificador de grupo del propietario del archivo.
- st_size : Representa el tamaño del archivo en bytes.
- st_atime : Representa la hora del acceso más reciente. Se expresa en segundos.
- st_mtime : Representa la hora de la modificación de contenido más reciente. Se expresa en segundos.
- st_ctime : representa la hora del cambio de metadatos más reciente en Unix y la hora de creación en Windows. Se expresa en segundos.
- st_atime_ns : es lo mismo que st_atime pero el tiempo se expresa en nanosegundos como un número entero.
- st_mtime_ns : es lo mismo que st_mtime pero el tiempo se expresa en nanosegundos como un número entero.
- st_ctime_ns : es lo mismo que st_ctime pero el tiempo se expresa en nanosegundos como un número entero.
- st_blocks : representa el número de bloques de 512 bytes asignados para el archivo.
- st_rdev : Representa el tipo de dispositivo, si es un dispositivo iNode.
- st_flags : representa las banderas definidas por el usuario para el archivo.
Código: Uso del os.DirEntry.stat()
método
# Python program to explain os.DirEntry.stat() method # importing os module import os # Directory to be scanned # Path path = "/home / ihritik" # Print status of all # files in the above # specified path # Using os.scandir() method # scan the specified directory # and yield os.DirEntry object # for each file and sub-directory print("Status of all files in path '% s':" % path) with os.scandir(path) as itr: for entry in itr : # Check if the entry # is a file if entry.is_file() : # Print file status print("Status of % s:" % entry.name) print(entry.stat(), "\n")
Status of all files in path '/home/ihritik': Status of file.txt: os.stat_result(st_mode=33248, st_ino=801366, st_dev=2056, st_nlink=2, st_uid=1000, st_gid=1000, st_size=409, st_atime=1566360293, st_mtime=1566287810, st_ctime=1566291428) Status of tree.cpp: os.stat_result(st_mode=33188, st_ino=801364, st_dev=2056, st_nlink=1, st_uid=1000, st_gid=1000, st_size=820, st_atime=1565604415, st_mtime=1565604415, st_ctime=1565604415) Status of graph.cpp: os.stat_result(st_mode=33188, st_ino=801237, st_dev=2056, st_nlink=1, st_uid=1000, st_gid=1000, st_size=1729, st_atime=1561515200, st_mtime=1561515069, st_ctime=1561515069) Status of abc.txt os.stat_result(st_mode=33434, st_ino=801196, st_dev=2056, st_nlink=1, st_uid=1000, st_gid=1000, st_size=0, st_atime=1560204341, st_mtime=1560204341, st_ctime=1560204349)
Referencias: https://docs.python.org/3/library/os.html#os.DirEntry.stat