domingo, 28 de septiembre de 2014

Tutorial de Python parte 22 - Módulo os. Programa para crear y eliminar carpetas y archivos




Continuamos con los aspectos básicos de Python y concretamente con uno de los módulos más importantes llamado os, ya en el capítulo anterior vimos una breve introducción de como utilizarlo a través de os.path.isfile(path) y os.path.isdir(path). En esta ocasión utilizaremos una serie de métodos que nos permitirán administrar archivos y carpetas de un modo fácil y intuitivo. En el ejemplo del capítulo crearemos un programa que nos permitirá crear y eliminar carpetas y archivos, para ello haremos uso de los siguientes métodos:

  • os.getcwd() : Regresa la ruta absoluta del script python que se está ejecutando
  • os.path.isdir(path) : Regresa un valor boolean. True si la carpeta existe en la ruta indicada
  • os.path.isfile(path) : Regresa un valor boolean. True si el archivo existe en la ruta indicada
  • os.mkdir(path) : Crea la carpeta en la ruta indicada
  • os.remove(path) : Elimina el archivo de la ruta indicada
  • os.rmdir(path) : Elimina la carpeta de la ruta indicada
 Archivo del capítulo del vídeo tutorial ...

#¡IMPORTANTE!
#incluir codificación UTF-8 al archivo para evitar problemas con caracteres latinos
import os

def init():
 print("**** ADMINISTRAR ARCHIVOS Y CARPETAS ****")
 opcion = input("Selecciona una opción c=crear y e=eliminar: ")
 if(opcion == "c"):
  ruta = input("Indique la ruta, si no indicas la ruta, la ruta será la actual: ")
  if(ruta == ""): ruta = os.getcwd() + "\\"
  #Comprobar si la ruta existe
  if(os.path.isdir(ruta)):
   tipo = input("Indique el tipo a=archivo y c=carpeta: ")
   if(tipo == "a"):
    archivo = input("Indique el nombre del archivo: ")
    #Crear el archivo
    manejador = open(ruta+archivo, "w")
    manejador.close()
    print("Archivo", archivo, "creado con éxito")
   elif(tipo == "c"):
    carpeta = input("Indique el nombre de la carpeta: ")
    #crear la carpeta
    os.mkdir(ruta+carpeta)
    print("Carpeta", carpeta, "creada con éxito")
   else: init() #reiniciamos el programa
 elif(opcion == "e"):
  ruta = input("Indique la ruta, si no indicas la ruta, la ruta será la actual: ")
  if (ruta == ""): ruta = os.getcwd() + "\\"
  eliminar = input("Indique el nombre de la carpeta o archivo a eliminar: ")
  #Si es un archivo
  if(os.path.isfile(ruta+eliminar)):
   os.remove(ruta+eliminar)
   print("Archivo", eliminar, "eliminado con éxito")
  #Si es una carpeta
  elif(os.path.isdir(ruta+eliminar)):
   os.rmdir(ruta+eliminar)
   print("Carpeta", eliminar, "eliminada con éxito")
  else: init() #Reiniciar el programa
 else: init() #Reiniciar el programa
  
#llamar a la función
init()