[Python/Tkinter](Kyurem v2.0)Consola de comandos hecha en python

Iniciado por AdeLax, 9 Agosto 2013, 22:45 PM

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

AdeLax

Hola buenas a todos y a elhacker,

Les traigo la nueva versión del proyecto Kyurem, una terminal de comandos echa en python/Tkinter

Tiene nuevas funciones como 'Time', que muestra la hora y fecha del sistema, o cls y gracias a Tkinter se puede cambiar los colores de la fuente y fondo

Es muy reciente, por lo que tendrá algún error, el codigo esta muy desordenado y alomoejor cuesta entenderlo

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')
CLS                Borra la pantalla
TIME:            Muestra la hora y fecha del sistema')
PRINT:           Muestra mensajes en la pantalla')
READ:            Abre el archivo en modo escritura')
WANT:            Busca un todos los archivo con extensión a elegir
DIR:             Muestra el directorio actual')
CD:              Cambia de directorio al directorio seleccionado
LAST:            Muestra la fecha de la ultima modificación del un archivo marcado
EXIT:            Sale de la consola de comando




Aquí les dejo el codigo:
# -*- coding: cp1252 -*-
from Tkinter import *
from pprint import pprint
from datetime import *
import commands
import datetime
import shutil
import glob
import time
import sys
import os




root = Tk()
#imagen1=PhotoImage(file="font.gif")
root["background"] = 'black' #bg="black"
root.title("KyuDOS")
root.geometry("1250x1000")


def bluecollor():
   list1["foreground"] = 'blue'

def redcolor():
   list1["foreground"] = 'red'

def whitecolor():
   list1["foreground"] = 'white'
   
def griscolor():
   list1["foreground"] = 'grey'

def narancolor():
   list1["foreground"] = 'orange'

def amancolor():
   list1["foreground"] = 'yellow'

def aman2color():
   list1["foreground"] = 'green'

def bcolor():
   list1["foreground"] = 'black'





def bluecollor2():
   list1["background"] = 'blue'

def redcolor2():
   list1["background"] = 'red'

def whitecolor2():
   list1["background"] = 'white'
   
def griscolor2():
   list1["background"] = 'grey'

def narancolor2():
   list1["background"] = 'orange'

def amancolor2():
   list1["background"] = 'yellow'

def aman2color2():
   list1["background"] = 'green'

def bcolor2():
   list1["background"] = 'black'


menu_general = LabelFrame(root, background = "#2E2E2E") # el LabelFrame es necesario como base para apoyar los menus sobre el
menu_general.pack(side = TOP, fill = X)

time1 = ''
clock = Label(menu_general, font=('ubuntu', 10, 'bold'), bg='#3C3B37',fg='white', bd=0)
clock.pack(side = RIGHT)

def tick():
   global time1
   time2 = time.strftime('%H:%M:%S')
   if time2 != time1:
       time1 = time2
       clock.config(text=time2,background = "#585858")
   clock.after(200, tick)

boton_menu_archivo = Menubutton(menu_general, text = "Color de la fuente", foreground = "white", background = "#585858",
                               activebackground = "#424242", activeforeground = "#585858")  #creamos el boton del menu del cual despus desplegamos los menus
boton_menu_archivo.pack(side = LEFT) #ahora si es verdaderamente visible

menu_archivo = Menu(boton_menu_archivo, background = "#424242", foreground = "#23A3FF",
                   activebackground = "#474AFF", activeforeground = "#70DBFF")
menu_archivo.add_command(label = "Color de fuente Azul", compound = LEFT, command = bluecollor)
menu_archivo.add_command(label = "Color de fuente Rojo", compound = LEFT, command = redcolor)
menu_archivo.add_command(label = "Color de fuente Blanco", compound = LEFT, command = whitecolor)
menu_archivo.add_command(label = "Color de fuente Gris", compound = LEFT, command = griscolor)
menu_archivo.add_command(label = "Color de fuente naranja", compound = LEFT, command = narancolor)
menu_archivo.add_command(label = "Color de fuente Amarillo", compound = LEFT, command = amancolor)
menu_archivo.add_command(label = "Color de fondo  Verde", compound = LEFT, command = aman2color)
menu_archivo.add_command(label = "Color de fondo  Negro", compound = LEFT, command = bcolor)
menu_archivo.add_separator()
menu_archivo.add_command(label = "Exit", compound = LEFT, command = root.destroy)

boton_menu_archivo["menu"] = menu_archivo





boton_menu_archivo2 = Menubutton(menu_general, text = "Color de Fondo", foreground = "white", background = "#585858",
                               activebackground = "#424242", activeforeground = "#585858")  #creamos el boton del menu del cual despus desplegamos los menus
boton_menu_archivo2.pack(side = LEFT) #ahora si es verdaderamente visible

menu_archivo2 = Menu(boton_menu_archivo2, background = "#424242", foreground = "#23A3FF",
                   activebackground = "#474AFF", activeforeground = "#70DBFF")
menu_archivo2.add_command(label = "Color de fondo Azul", compound = LEFT, command = bluecollor2)
menu_archivo2.add_command(label = "Color de fondo  Rojo", compound = LEFT, command = redcolor2)
menu_archivo2.add_command(label = "Color de fondo  Blanco", compound = LEFT, command = whitecolor2)
menu_archivo2.add_command(label = "Color de fondo  Gris", compound = LEFT, command = griscolor2)
menu_archivo2.add_command(label = "Color de fondo  naranja", compound = LEFT, command = narancolor2)
menu_archivo2.add_command(label = "Color de fondo  Amarillo", compound = LEFT, command = amancolor2)
menu_archivo2.add_command(label = "Color de fondo  Verde", compound = LEFT, command = aman2color2)
menu_archivo2.add_command(label = "Color de fondo  Negro", compound = LEFT, command = bcolor2)
menu_archivo2.add_separator()
menu_archivo2.add_command(label = "Exit", compound = LEFT, command = root.destroy)

boton_menu_archivo2["menu"] = menu_archivo2







def colocar_scrollbar(listbox,scrollbar):
   scrollbar.config(command=listbox.yview)
   listbox.config(yscrollcommand=scrollbar.set)
   scrollbar.pack(side=RIGHT, fill=Y)
   listbox.pack(side=LEFT, fill=Y)



frame1=Frame(root,bg="black")
frame1.place(x=30, y=50) # <-> -|^ x= -> y= -|^
#frame1.pack()
scroll1=Scrollbar(frame1)
list1=Listbox(frame1,bg="black",fg='green',width=170,height=33,font=("Helvetica", 10))
#list1.pack()
colocar_scrollbar(list1,scroll1)
mivalor=StringVar()
copi2=StringVar()
copi3=StringVar()

#Label(root,image=imagen1).pack()

e1=Entry(root,textvar=mivalor,width=150,bg="black",fg="green", font=("Helvetica", 10)).place(x=30, y=630) # <-> -|^ x= -> y= -|^

e2=Entry(root,textvar=copi2,width=72,bg="black",fg="green", font=("Helvetica", 10)).place(x=30, y=700)
e3=Entry(root,textvar=copi3,width=72,bg="black",fg="green", font=("Helvetica", 10)).place(x=578, y=700)


list1.insert(END, "")
list1.insert(END, " Kyurem v2.0")
list1.insert(END, " -----------------------------------------------------------------------------------------------------------------------")
list1.insert(END, " Kyurem Consola de comandos en python")
list1.insert(END, " By Razel")
list1.insert(END, "")
list1.insert(END, "")




def copyfuncion():
   arc1 = copi2.get()
   arc2 = copi3.get()

   try:
       shutil.copy(arc1, arc2)
       list1.insert(END,"")
       list1.insert(END,"El archivo a sido copiado.")
       list1.insert(END,"")

       list1.insert(END, "")
       list1.insert(END, os.getcwd()+">")

   except:
       list1.insert(END,"")
       list1.insert(END,"ERROR El arhivo no a sido copiado.")
       list1.insert(END,"")

       list1.insert(END, "")
       list1.insert(END, os.getcwd()+">")
   






list1.insert(END, os.getcwd()+">")

def insertar_en_listbox():

   if mivalor.get() != '':
       
       if mivalor.get() == "help":
           
           list1.insert(END,'')
           list1.insert(END,'HELP:            Muestra la lista de comandos de la shell')
           list1.insert(END,"-H:              Muestar la lista de los comandos de la shell")
           list1.insert(END,'DEL:             Elimina el archivo marcado')
           list1.insert(END,'XDEL:            Elimina la carpeta marcada')
           list1.insert(END,'CLS                Borra la pantalla')
           list1.insert(END,'TIME:            Muestra la hora y fecha del sistema')
           list1.insert(END,'PRINT:           Muestra mensajes en la pantalla')
           list1.insert(END,'READ:            Abre el archivo en modo escritura')
           list1.insert(END,'WANT:            Buasca un todos los archivo con extension a elegir')
           list1.insert(END,'DIR:             Muestra el directorio actual')
           list1.insert(END,'CD:              Cambia de directorio al directorio selecionado')
           list1.insert(END,'LAST:            Muestra la fecha de la ultima midificacion del un archivo marcado')
           list1.insert(END,'EXIT:            Sale de la consola de comandos')

           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")

       if mivalor.get() == "-h":
           list1.insert(END,'')
           list1.insert(END,'HELP:            Muestra la lista de comandos de la shell')
           list1.insert(END,"-H:              Muestar la lista de los comandos de la shell")
           list1.insert(END,'DEL:             Elimina el archivo marcado')
           list1.insert(END,'XDEL:            Elimina la carpeta marcada')
           list1.insert(END,'CLS                Borra la pantalla')
           list1.insert(END,'TIME:            Muestra la hora y la fecha del sistema')
           list1.insert(END,'PRINT:           Muestra mensajes en la pantalla')
           list1.insert(END,'READ:            Abre el archivo en modo escritura')
           list1.insert(END,'WANT:            Buasca un todos los archivo con extension a elegir')
           list1.insert(END,'DIR:             Muestra el directorio actual')
           list1.insert(END,'CD:              Cambia de directorio al directorio selecionado')
           list1.insert(END,'LAST:            Muestra la fecha de la ultima midificacion del un archivo marcado')
           list1.insert(END,'EXIT:            Sale de la consola de comandos')
           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")

       if mivalor.get() == "HELP":
           
           list1.insert(END,'')
           list1.insert(END,'HELP:            Muestra la lista de comandos de la shell')
           list1.insert(END,"-H:              Muestar la lista de los comandos de la shell")
           list1.insert(END,'DEL:             Elimina el archivo marcado')
           list1.insert(END,'XDEL:            Elimina la carpeta marcada')
           list1.insert(END,'CLS                Borra la pantalla')
           list1.insert(END,'TIME:            Muestra la hora y la fecha del sistema')
           list1.insert(END,'PRINT:           Muestra mensajes en la pantalla')
           list1.insert(END,'READ:            Abre el archivo en modo escritura')
           list1.insert(END,'WANT:            Buasca un todos los archivo con extension a elegir')
           list1.insert(END,'DIR:             Muestra el directorio actual')
           list1.insert(END,'CD:              Cambia de directorio al directorio selecionado')
           list1.insert(END,'LAST:            Muestra la fecha de la ultima midificacion del un archivo marcado')
           list1.insert(END,'EXIT:            Sale de la consola de comandos')
           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")

       if mivalor.get() == "-H":
           list1.insert(END,'')
           list1.insert(END,'HELP:            Muestra la lista de comandos de la shell')
           list1.insert(END,"-H:              Muestar la lista de los comandos de la shell")
           list1.insert(END,'DEL:             Elimina el archivo marcado')
           list1.insert(END,'XDEL:            Elimina la carpeta marcada')
           list1.insert(END,'CLS                Borra la pantalla')
           list1.insert(END,'TIME:            Muestra la hora y fecha del sistema')
           list1.insert(END,'PRINT:           Muestra mensajes en la pantalla')
           list1.insert(END,'READ:            Abre el archivo en modo escritura')
           list1.insert(END,'WANT:            Buasca un todos los archivo con extension a elegir')
           list1.insert(END,'DIR:             Muestra el directorio actual')
           list1.insert(END,'CD:              Cambia de directorio al directorio selecionado')
           list1.insert(END,'LAST:            Muestra la fecha de la ultima midificacion del un archivo marcado')
           list1.insert(END,'TIME             Muestra la hora del sistema')
           list1.insert(END,'EXIT:            Sale de la consola de comandos')
           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")

       if mivalor.get().startswith("del") == True:

           rut = mivalor.get()[4:]

           try:
               os.remove(rut)
               list1.insert(END,'EL archivo a sido eliminado con exito.')

           except:
               list1.insert(END,'ERROR El archivo no a podido ser eliminado.')

           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")

       if mivalor.get().startswith("xdel") == True:

           arc1 = mivalor.get()[5:]
           boo = True

           try:
               shutil.rmtree(arc1, boo)
               list1.insert(END, "\nLa carpeta a sido eliminada.")

           except:
               list1.insert(END,"ERROR La carpeta no a podido ser eliminado.")

           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")
               
       if mivalor.get().startswith("read") == True:

           red = mivalor.get()[5:]

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

           except:
               list1.insert(END,"ERROR El archivo no a podido ser abierto en mode lectura.")

           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")

       elif mivalor.get().startswith("want") == True:

           arc = mivalor.get()[5:]

           try:

               lista = glob.glob("*" + arc)
               list1.insert(END,"Archivos con extension" + arc + "en este directorio:")
               list1.insert(END,"")
               list1.insert(END,lista)
               
           except:
               list1.insert(END,"ERROR No se a encontrado el archivo con la extension que pide.")

           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")


       elif mivalor.get().startswith("dir") == True:

           arc = mivalor.get()[4:]
           try:
               os.chdir(arc)
               list1.insert(END,"")
               list1.insert(END,"Directorio:", arc)
               list1.insert(END,"")

               archis = os.listdir(arc)
               for imagen in archis:
                   list1.insert(END,imagen)

           except:
               
               list1.insert(END,"")
               list1.insert(END,"Directorio actual:", os.getcwd())
               list1.insert(END,"")
               

               archis = os.listdir(os.getcwd())
               for imagen in archis:
                   list1.insert(END,imagen)

           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")
                   
       elif mivalor.get().startswith("cd") == True:

           arc = mivalor.get()[3:]
           try:
               os.chdir(arc)
           except:
               list1.insert(END,os.getcwd())
               
           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")

       elif mivalor.get().startswith("last") == True:

           arcx = mivalor.get()[5:]

           try:
               metadata = os.stat(arcx)
               metadata.st_mtime
               time.localtime(metadata.st_mtime)

               list1.insert(END,"")
               list1.insert(END,time.localtime(metadata.st_mtime))
               list1.insert(END,"")

           except:
               list1.insert(END,"ERROR Archivo no definido.")

           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")

       elif mivalor.get().startswith("print") == True:

           rut = mivalor.get()[6:]

           list1.insert(END,rut)
           
           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")

       elif mivalor.get() == 'time':

           list1.insert(END, '')

           list1.insert(END, datetime.datetime.now())

           list1.insert(END, "")
           list1.insert(END, os.getcwd()+">")

       elif mivalor.get() == 'cls':
           list1.delete(0, END)          
           
           

       elif mivalor.get() == "exit":
           exit()

               



   elif mivalor.get() == '':
       list1.insert(END,"No se reconoce como un comando interno o externo")


Label(root,text='[+] Introduce la ruta del archivo a copiar:',fg='green', bg='black',font=("Helvetica", 10)).place(x=30, y=675)
Label(root,text='[+] Introduce la ruta donde se copiara el archivo:',fg='green', bg='black',font=("Helvetica", 10)).place(x=578, y=675)
       
       

b1=Button(root,text="Enter",command=insertar_en_listbox, bg="black",fg="green", width=20).place(x=1100, y=630) # <-> -|^ x= -> y= -|^
b2=Button(root,text="Copiar",command=copyfuncion, bg="black",fg="green", width=20).place(x=1100, y=700) # <-> -|^ x= -> y= -|^

tick()
clock.mainloop()

root.mainloop()




Gracias  :D