Subsecciones

Ejemplos

  1. En un directorio, renombra *.xml a *.html
    import os.path, glob, shutil, optparse
    def main():
        p = optparse.OptionParser(description="Renombra XML a HTML",
                                  usage="%prog [directory]")
        options, args = p.parse_args()
        if len(args) == 1:
            # Chequea que sea un directorio
            if not os.path.isdir(args[0]):
                print args[0] + " no es un directorio"
                sys.exit(1)
            try:
                os.chdir(args[0]) # Cambia al directorio
                # Recorre los ficheros .xml
                for f in glob.glob("*.xml"):
                    # Construye el nuevo nombre y renombra los ficheros
                    new = os.path.splitext(f)[0] + ".html"
                    shutil.move(f, new)
            except:
                print "Hubo un problema ejecutando el programa."
        else:
            p.print_help()
    if __name__ == "__main__":
        main()
    
  2. Muestra información sobre un proceso en ejecución
    from subprocess import Popen, PIPE
    proc = raw_input("Proceso a chequear: ")
    try:
        # Ejecuta el comando ps y obten la salida
        output = Popen("ps -edf | grep "+proc,shell=True,stdout=PIPE)
        procs = output.stdout.readlines()
        for procinfo in procs:
            # Separa la salida en campos
            info = procinfo.split()
            # Muestra los resultados
            print "\n\
            Ejecutable:\t", info[-1], "\n\
            Propietario:\t", info[0], "\n\
            PID:\t\t", info[1], "\n\
            PPID:\t\t", info[2], "\n\
            Hora inicio:\t", info[4], "\n"
    except:
        print "Hubo un problema ejecutando el programa."
    
  3. Realiza acciones sobre un tar, seleccionándolas de un menú
    import tarfile, sys
    try:
      f = True
      while f:
        # Abre el fichero tar (especificado como argumento)
        tar = tarfile.open(sys.argv[1], "r")
    
        # Presenta el menú y obtiene la selección
        selection = raw_input("""
        Selecciona
           1 para extraer un fichero
           2 para mostrar información sobre un fichero en """ 
             + sys.argv[1] + """
           3 para listar los ficheros de """ + sys.argv[1] + 
           """
           4 para terminar""" + "\n")
    
        # Realiza la acción en función de la selección
        if selection == "1":
          filename = raw_input("Indica el fichero a extraer:  ")
          tar.extract(filename)
        elif selection == "2":
          filename = raw_input("Indica el fichero a inspeccionar:  ")
          for tarinfo in tar:
            if tarinfo.name == filename:
              print "\n\
              Nombre:\t", tarinfo.name, "\n\
              Tamaño:\t", tarinfo.size, "bytes\n"
        elif selection == "3":
          print tar.list(verbose=True)
        elif selection == "4":
          f = False
        else:
            print "Selección incorrecta"
    except:
        print "Hubo un problema ejecutando el programa."
    

Referencias



Administración de Sistemas e Redes <ASR.USC[at]gmail.com>
Tomás Fernández Pena <tf.pena[at]usc.es>
Última actualización: 30-09-15 17:44 por tomas

Creative Commons License
Curso de Administración de Sistemas y Redes por Tomás Fernández Pena se distribuye bajo la licencia Creative Commons Recoñecemento-Compartir baixo a mesma licenza. 3.0 España.
Trabajo original en persoal.citius.usc.es/tf.pena/ASR.