[Python] Consola de comandos en python (Kyurem)

Iniciado por Razel, Agosto 17, 2013, 11:48:15 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 17, 2013, 11:48:15 AM Ultima modificación: Marzo 16, 2014, 08:57:12 PM por Expermicid
Hola a todos!,

Les traigo una consola de comandos (como el cmd).

Programada en python, opinar, y comenten cosas a mejorar!

                                                                                                         Kyurem v 1,0

[ ] COMANDOS


HELP:            Muestra la lista de comandos de la shell
-H:              Muestar la lista de los comandos de la shell
DEL:             Elimina el archivo marcado
XDEL:            Elimina la carpeta marcada
PRINT:           Muestra mensajes en la pantalla
READ:            Abre el archivo en modo escritura
WANT:            Buasca un todos los archivo con extension a elegir
DIR:             Muestra el directorio actual"
CD:              Cambia de directorio al directorio selecionado
LAST:            Muestra la fecha de la ultima midificacion del un archivo marcado
EXIT:            Sale de la consola de comandos


Código: python
#!/usr/bin/python

from pprint import pprint
import shutil
import glob
import time
import sys
import os


print "\n"
print "  Kyurem v1.0"
print "  -------------------------------------------------------------------"
print "  Consola de comando realizada en python >>>\n\n\n"
print " Kyurem Software\n NRS\n"

def menu():
    os.system("color 0a")
    opcion = 0
   

    while opcion <1 or opcion >10:
       
        opcion = raw_input('>>> ')
        return opcion

opcion = 0
while opcion !=16:
    opcion = menu()

    if opcion == "help":

        print "\nHELP:            Muestra la lista de comandos de la shell"
        print "-H:              Muestar la lista de los comandos de la shell"
        print "DEL:             Elimina el archivo marcado"
        print "XDEL:            Elimina la carpeta marcada"
        print "COPY:            Copia un archivo en un directorio"
        print "PRINT:           Muestra mensajes en la pantalla"
        print "READ:            Abre el archivo en modo escritura"
        print "WANT:            Buasca un todos los archivo con extension a elegir"
        print "DIR:             Muestra el directorio actual"
        print "CD:              Cambia de directorio al directorio selecionado"
        print "LAST:            Muestra la fecha de la ultima midificacion del un archivo marcado"
        print "EXIT:            Sale de la consola de comandos\n"

    if opcion == "-h":
       
        print "\nHELP:            Muestra la lista de comandos de la shell"
        print "-H:              Muestar la lista de los comandos de la shell"
        print "DEL:             Elimina el archivo marcado"
        print "XDEL:            Elimina la carpeta marcada"
        print "COPY:            Copia un archivo en un directorio"
        print "PRINT:           Muestra mensajes en la pantalla"
        print "READ:            Abre el archivo en modo escritura"
        print "WANT:            Buasca un todos los archivo con extension a elegir"
        print "DIR:             Muestra el directorio actual"
        print "CD:              Cambia de directorio al directorio selecionado"
        print "LAST:            Muestra la fecha de la ultima midificacion del un archivo marcado"
        print "EXIT:            Sale de la consola de comandos\n"
       
    if opcion == "HELP":

        print "\nHELP:            Muestra la lista de comandos de la shell"
        print "-H:              Muestar la lista de los comandos de la shell"
        print "DEL:             Elimina el archivo marcado"
        print "XDEL:            Elimina la carpeta marcada"
        print "COPY:            Copia un archivo en un directorio"
        print "PRINT:           Muestra mensajes en la pantalla"
        print "READ:            Abre el archivo en modo escritura"
        print "WANT:            Buasca un todos los archivo con extension a elegir"
        print "DIR:             Muestra el directorio actual"
        print "CD:              Cambia de directorio al directorio selecionado"
        print "LAST:            Muestra la fecha de la ultima midificacion del un archivo marcado"
        print "EXIT:            Sale de la consola de comandos\n"
       
    if opcion == "-H":

        print "\nHELP:            Muestra la lista de comandos de la shell"
        print "-H:              Muestar la lista de los comandos de la shell"
        print "DEL:             Elimina el archivo marcado"
        print "XDEL:            Elimina la carpeta marcada"
        print "COPY:            Copia un archivo en un directorio"
        print "PRINT:           Muestra mensajes en la pantalla"
        print "READ:            Abre el archivo en modo escritura"
        print "WANT:            Buasca un todos los archivo con extension a elegir"
        print "DIR:             Muestra el directorio actual"
        print "CD:              Cambia de directorio al directorio selecionado"
        print "LAST:            Muestra la fecha de la ultima midificacion del un archivo marcado"
        print "EXIT:            Sale de la consola de comandos\n"
       

    if opcion.startswith("del") == True:
       
        rut = opcion[4:]

        try:
            os.remove(rut)
            print "\nEL archivo a sido eliminado con exito.\n"

        except:
            print "\nERROR El archivo no a podido ser eliminado.\n"

    if opcion.startswith("xdel") == True:

        arc1 = opcion[5:]
        boo = True

        try:
            shutil.rmtree(arc1, boo)
            print "\nLa carpeta a sido eliminada.\n"

        except:
            print "ERROR La carpeta no a podido ser eliminado.\n"

    if opcion.startswith("print") == True:

        rut = []
        rut = opcion[6:]

        print rut

    if opcion == "copy":
       
       arc3 = raw_input("\nIntroduce la ruta del archivo a copiar:")
       
       arc4 = raw_input("Introduce la ruta donde se copiara el archivo:")

       try:
           shutil.copy(arc3, arc4)

           print "\nEl archivo a sido copiado."

       except:
            print "ERROR El arhivo no a sido copiado.\n"

    if opcion.startswith("read") == True:

        red = opcion[5:]

        try:
            archi = open(red,'r')
            linea=archi.readline()
            while linea!="":
                print linea
                linea=archi.readline()

        except:

            print "ERROR El archivo no a podido ser abierto en mode lectura."

    elif opcion.startswith("want") == True:

        arc = []
        arc = opcion[5:]

        try:
            lista = glob.glob("*" + arc)
            print "Aerchivos con extension",arc,"En este directorio:"
            print "\n", lista
        except:
            print "ERROR No se a encontrado el archivo con la extension que pide."

    elif opcion.startswith("dir") == True:

        arc = []
        arc = opcion[4:]

        try:
            os.chdir(arc)
            print "\n\nDirectorio:", arc, "\n\n"
            pprint([(x[0], time.ctime(x[1].st_ctime)) for x in sorted([(fn, os.stat(fn)) for fn in os.listdir(arc)], key = lambda x: x[1].st_ctime)])
            print '\n'
           
        except:
            print "\n\n",'Directorio actual:' , os.getcwd(), '\n\n'
            pprint([(x[0], time.ctime(x[1].st_ctime)) for x in sorted([(fn, os.stat(fn)) for fn in os.listdir(".")], key = lambda x: x[1].st_ctime)])
            print '\n'

           
    elif opcion.startswith("cd") == True:

        arc = []
        arc = opcion[3:]

        try:
            os.chdir(arc)
            print os.getcwd()

        except:
            print os.getcwd()

    elif opcion.startswith("last") == True:

        arcx = opcion[5:]

        try:
            metadata = os.stat(arcx)
            metadata.st_mtime
            time.localtime(metadata.st_mtime)
            print '\n', time.localtime(metadata.st_mtime), '\n'
           
        except:
            print "ERROR Archivo no definido."

    elif opcion == "exit":
        exit()


Gracias, ojala les gusten!  :)

Supongo que no esta mal aunque hay muchas lineas que te podias haber ahorrado y asi optimizar code.
Por ejemplo en lugar de usar varios if para cubrir las opciones de help, -h y demas podrias meter estas en una lista y usar if x in por ejemplo
Sigueme en Twitter : @Sankosk
Estos nuevos staff no tienen puta idea XD