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:
Código:
# -*- 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