17 de mayo de 2016

36. Módulos nativos. Os. Os.path

Módulos nativos

En Python, no sólo cabe la posibilidad de usar los módulos que creemos nosotros. Python se suministra con muchísimos módulos nativos, de los cuales, de los más importantes, hablaremos a continuación.
El orden de importación debe ser el siguiente: primero deben importarse los módulos nativos de Python. Luego, los módulos de terceros y finalmente, los módulos propios de la aplicación.
Entre cada uno de los tres bloques debe dejarse una línea en blanco. Por ejemplo,

import os, sys 

import paquete1.moduloDeTerceros as tercero

import mipaquete.mimodulo as mio
 
Por cierto, ¿por qué no ejecutas directamente en un terminal de Python import this? Risa 

OS

OS Significa "operative system". Es un módulo que permite la interactividad con el mismo por lo que debe manejarse con cuidado, por las acciones que suponen pérdida de información. Básicamente maneja archivos y directorios.
Algunas de sus funcionalidades son:
Saber si se puede acceder a un archivo o directorio
os.access(path, modo_de_acceso)
Conocer el directorio actual
os.getcwd()
Cambiar de directorio de trabajo
os.chdir(nuevo_path)
Cambiar al directorio de trabajo raíz
os.chroot()
Cambiar los permisos de un archivo o directorio
os.chmod(path, permisos)
Cambiar el propietario de un archivo o directorio
os.chown(path, permisos)
Crear un directorio
os.mkdir(path[, modo])
Crear directorios recursivamente
os.mkdirs(path[, modo])
Eliminar un archivo
os.remove(path)
Eliminar un directorio
os.rmdir(path)
Eliminar directorios recursivamente
os.removedirs(path)
Renombrar un archivo
os.rename(actual, nuevo)
Crear un enlace simbólico
os.symlink(path, nombre_destino)
Una función interesante es os.environ que es un diccionario con las variables de entorno del sistema.
= = =
Un ejemplo que crea un directorio, dentro un subdirectorio, un fichero y le cambia el nombre al fichero.
# -*- coding: utf-8 -*-

import os

# Si quiero imprimir las variables de entorno, descomento
# for variable, valor in os.environ.iteritems():
#     print ("%s ==> %s") % (variable, valor)

# El directorio actual
ruta = os.getcwd()
print ruta

# crear un subdirectorio
if not os.access("mod_os_ejemplo",0):
    os.mkdir("mod_os_ejemplo")
    
#Accede al subdirectorio
os.chdir("mod_os_ejemplo")
# y otro subdirectorio
if not os.access("probando",0):
    os.mkdir("probando")

# accede al directorio de ejecución del programa
# Si escribo la siguiente línea vuelvo atrás y escribe el archivo en 
# la ruta donde se ejecuta el programa
# os.chdir("../")
# Pero si escribo lo siguiente, escribirá el fichero en 
# el nuevo directorio
os.chdir("probando")

# Escribe un fichero en él
with open("prueba.txt", "a+") as archivo:
    archivo.write("Hola")
    
#Y le cambio el nombre...
os.rename("prueba.txt","probando.txt")
 

os.path

El módulo os posee un submódulo os.path que permite actuar sobre los nombres de las rutas y de los archivos.
Ruta absoluta
os.path.abspath(path)
Directorio base
os.path.basename(path)
Saber si un directorio existe
os.path.exists(path)
Conocer último acceso a un directorio
os.path.getatime(path)
Conocer tamaño del directorio
os.path.getsize(path)
Saber si una ruta es absoluta
os.path.isabs(path)
Saber si una ruta es un archivo
os.path.isfile(path)
Saber si una ruta es un directorio
os.path.isdir(path)
Saber si una ruta es un enlace simbólico
os.path.islink(path)
Saber si una ruta es un punto de montaje
os.path.ismount(path)
La referencia del lenguaje de os.path en esta página.
= = =
Ejemplo, añadir estas líneas al programa anterior
os.chdir("../")
print ("Tamaño del directorio... %.3f") % os.path.getsize("probando")
print ("Tamaño del fichero... %.3f") % os.path.getsize("probando/probando.txt")
    
 

No hay comentarios:

Publicar un comentario