Hola, muy buen día.-
Los molesto por 2 cosas.
La primera es para que me digan como puedo mostrar las traducciones alineadas:
Incorrecto
Home Hogar
Almost Casi
Also También
Correcto
Home Hogar
Almost Casi
Also También
Y la segunda para que alguien con mucho pero mucho tiempo me de algún consejo
para mejorar el código(recién me estoy iniciando).-
Las funciones a tener en cuenta son
guardar y listado# -*- coding: utf-8 -*-
import os
# Traductor Inglés/Español
def menu():
borrar_pantalla()
listado()
while True:
registros=cantidad_registros()
print("\n ========== Traductor Inglés/Español ==========")
print("\n Cantidad de traducciones guardadas...:{} ".format(registros))
print("\n\n --------------- Menú principal ---------------")
print(" \n\t 1) Ingresar. \n\t 2) Consultar(visualizar/borrar)."
"\n\t 3) Finalizar.")
opcion = input("\n\t Elija opción..............: ")
if opcion < '1' or opcion > '3':
print("\n Por favor, elija una opción válida ")
input("\n Pulse [Enter] para continuar...")
borrar_pantalla()
elif len(opcion) > 1:
print("\n Por favor, elija una opción válida ")
input("\n Pulse [Enter] para continuar...")
borrar_pantalla()
else:
if opcion == '1':
ingreso()
elif opcion == '2':
registros=cantidad_registros()
if registros > 0:
consulta()
else:
print("\n No hay traducciones guardadas para buscar")
input("\n Pulse [Enter] para continuar...")
borrar_pantalla()
if opcion == '3':
break
def listado():
print("\n ========== Listado de traducciones guardadas. ==========")
with open('traductor.txt', 'r') as tra:
for linea in tra:
print(" ", linea)
def ingreso():
borrar_pantalla()
while True:
ingles = input("\n Ingrese palabra en Inglés.......: ")
while len(ingles) == 0:
ingles = input("\n Ingrese palabra en Inglés.......: ")
espaniol = input("\n Ingrese traducción al Español...: ")
while len(espaniol) == 0:
espaniol = input("\n Ingrese traducción al Español...: ")
arch = input('\n Ingrese "Si" para guardar traducción en disco'
'\n otra para descartar.............:')
if arch == 'Si':
trad = ingles + " " + espaniol +"\n"
guardar(trad)
else:
print("\n La traducción no fue guardada...")
seg_salir = input('\n Ingrese "Si" para otra traducción\n'
' Otra para ir al menú..........:')
if seg_salir == 'Si':
borrar_pantalla()
else:
menu()
break
def guardar(trad):
f=open("traductor.txt", "a")
f.write(trad)
f.close()
def consulta():
borrar_pantalla()
encontrado=""
busqueda = input("\n Ingrese consulta (en inglés o español...:) ")
with open('traductor.txt', 'r') as tra:
for linea in tra:
if busqueda in linea:
encontrado=linea
if len(encontrado) > 0:
print("\n Resultado...: {0}".format(encontrado))
print("\n ¿Desea borrar la traducción en pantalla?\n ")
opcion = input(" 'Si' para borrar / otra para descartar...: ")
if opcion == 'Si':
borrar_traduccion(encontrado)
else:
print("\n La traducción no existe...")
input("\n Pulse [Enter] para continuar...")
def cantidad_registros():
f = open("traductor.txt","r")
f.readline()
f.seek(0)
cant_registros = len(f.readlines())
f.close()
return cant_registros
def borrar_traduccion(encontrado):
f = open("traductor.txt","r")
lineas = f.readlines()
f.close()
f = open("traductor.txt","w")
for linea in lineas:
if linea!=encontrado:
f.write(linea)
f.close()
def borrar_pantalla():
if os.name == "posix":
os.system ("clear")
elif os.name == ("ce", "nt", "dos"):
os.system ("cls")
def main():
menu()
main()
Saludos y gracias.
Daniel