Estos módulos nos permiten acceder a funcionalidades para conocer el entorno en el que nos encontramos, manejar los directorios, información sobre el interprete, ordenes del sistemas operativo. Para el día de hoy hare unos ejemplos sobre el modulo OS.
Módulo OS
El módulo os nos permite acceder a funcionalidades dependientes del Sistema Operativo. Sobre todo, aquellas que nos refieren información sobre el entorno del mismo y nos permiten manipular la estructura de directorios.
Archivos y directorios
En este modulo tenemos funcionalidades para manejar archivos y obtener información sobre ello, aqui un ejemplo que contiene algunas funciones principales (para mas información pueden ver la documentación aqui).
Pueden ver el código completo en github, hice un ejemplo en el cual el programa realiza lo siguiente:
Veamos:
cambiar_ubicacion(path_rel): cambia al directorio pasado como parametro, utiliza las siguientes funciones.
Pueden ver el código completo en github, hice un ejemplo en el cual el programa realiza lo siguiente:
- Obtengo el directorio actual.
- Luego creo un nuevo directorio con permisos solo de lectura y escritura.
- El programa intenta cambiar al nuevo directorio creado.
- Por ultimo como no puede cambiar su ubicación, le da al directorio creado los permisos de ejecución para de nuevo intentar cambiar con éxito al nuevo directorio.
Veamos:
cambiar_ubicacion(path_rel): cambia al directorio pasado como parametro, utiliza las siguientes funciones.
- os.access(path, permisos) : nos permite saber si un archivo o directorio tiene el permiso indicado. El primer parámetro es la ubicación del directorio o archivo, el segundo parámetro pueden ser las siguientes variables:
- os.F_OK (devuelve True si existe)
- os.R_OK (devuelve True si tiene permiso de lectura)
- os.W_OK (devuelve True si tiene permiso de escritura)
- os.X_OK (devuelve True si tiene permiso de ejecución) - os.chdir(path): nos permite cambiar al directorio que se le pasa como parámetro, retorna error en caso que no exista o no se puede cambiar a dicho directorio.
mostrar_permisos(path_rel): evalúa los diferentes permisos mencionados anteriormente.
Ademas se utilizan otras funciones como:
os.getcwd(): retorna el directorio actual.
os.path.abspath(path): retorna la ruta absoluta de la ubicación indicada como parámetro. Si le pasas un ".", indica que es el directorio actual.
os.mkdir(path,permisos): crea un directorio en la ruta indicada como primer parámetro, esta ruta puede ser relativa o absoluta, es decir, puede indicar la ruta desde la raíz o desde la ubicación actual. Los permisos se indican de forma octal (0600 indica permisos de lectura y escritura para el usuario actual).
os.chmod(path, permisos): modifica los permisos del archivo o directorio indicado en el primer parámetro, los permisos se pueden indicar con el modulo stat, el parametro S_IXUSR indica permisos de ejecución para el usuario actual, para mas información pueden ver aqui.
Variables de entorno
El módulo os también nos provee de un diccionario con las variables de entorno relativas al sistema. Se trata del diccionario environ:
import os for variable, valor in os.environ.iteritems(): print "%s: %s" % (variable, valor)
Path
El módulo os también nos provee del submódulo path (os.path) el cual nos permite acceder a ciertas funcionalidades relacionadas con los nombres de las rutas de archivos y directorios.
Entre las que mas destacan las podemos ver en esta imagen:
Para mas información pueden ver la propia documentación de Python en este enlace. Luego haré un ejemplo de los otros 2 módulos SYS y SUBPROCESS.