elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Mostrar frases alineadas extraídas de un archivo [Python]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mostrar frases alineadas extraídas de un archivo [Python]  (Leído 2,579 veces)
NOB2014


Desconectado Desconectado

Mensajes: 366



Ver Perfil
Mostrar frases alineadas extraídas de un archivo [Python]
« en: 27 Noviembre 2017, 16:50 pm »

Hola, muy buen día.-
Los molesto por 2 cosas.
La primera es para que me digan como puedo mostrar las traducciones alineadas:

Incorrecto
Citar
Home   Hogar
Almost   Casi
Also   También

Citar
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

Código
  1. # -*- coding: utf-8 -*-
  2. import os
  3.  
  4. # Traductor Inglés/Español
  5.  
  6. def menu():
  7. borrar_pantalla()
  8. listado()
  9. while True:
  10. registros=cantidad_registros()
  11. print("\n ========== Traductor Inglés/Español ==========")
  12. print("\n Cantidad de traducciones guardadas...:{} ".format(registros))
  13. print("\n\n --------------- Menú principal ---------------")
  14. print(" \n\t 1) Ingresar. \n\t 2) Consultar(visualizar/borrar)."
  15. "\n\t 3) Finalizar.")
  16.  
  17. opcion = input("\n\t Elija opción..............: ")
  18. if opcion < '1' or opcion > '3':
  19. print("\n Por favor, elija una opción válida ")
  20. input("\n Pulse [Enter] para continuar...")
  21. borrar_pantalla()
  22. elif len(opcion) > 1:
  23. print("\n Por favor, elija una opción válida ")
  24. input("\n Pulse [Enter] para continuar...")
  25. borrar_pantalla()
  26. else:
  27. if opcion == '1':
  28. ingreso()
  29. elif  opcion == '2':
  30. registros=cantidad_registros()
  31. if registros > 0:
  32. consulta()
  33. else:
  34. print("\n No hay traducciones guardadas para buscar")
  35. input("\n Pulse [Enter] para continuar...")
  36. borrar_pantalla()
  37. if opcion == '3':
  38. break
  39.  
  40. def listado():
  41. print("\n ========== Listado de traducciones guardadas. ==========")
  42. with open('traductor.txt', 'r') as tra:
  43. for linea in tra:
  44. print(" ", linea)
  45.  
  46. def ingreso():
  47. borrar_pantalla()
  48. while True:
  49. ingles = input("\n Ingrese palabra en Inglés.......: ")
  50. while len(ingles) == 0:
  51. ingles = input("\n Ingrese palabra en Inglés.......: ")
  52.  
  53. espaniol = input("\n Ingrese traducción al Español...: ")
  54. while len(espaniol) == 0:
  55. espaniol = input("\n Ingrese traducción al Español...: ")
  56. arch = input('\n Ingrese "Si" para guardar traducción en disco'
  57. '\n otra para descartar.............:')
  58. if arch == 'Si':
  59. trad = ingles + "   " + espaniol +"\n"
  60. guardar(trad)
  61. else:
  62. print("\n La traducción no fue guardada...")
  63.  
  64. seg_salir = input('\n Ingrese "Si" para otra traducción\n'
  65.  ' Otra para ir al menú..........:')
  66. if seg_salir == 'Si':
  67. borrar_pantalla()
  68. else:
  69. menu()
  70. break
  71.  
  72. def guardar(trad):
  73. f=open("traductor.txt", "a")
  74. f.write(trad)
  75. f.close()
  76.  
  77.  
  78. def consulta():
  79. borrar_pantalla()
  80. encontrado=""
  81. busqueda = input("\n Ingrese consulta (en inglés o español...:) ")
  82. with open('traductor.txt', 'r') as tra:
  83. for linea in tra:
  84. if busqueda in linea:
  85. encontrado=linea
  86.  
  87. if len(encontrado) > 0:
  88. print("\n Resultado...: {0}".format(encontrado))
  89. print("\n ¿Desea borrar la traducción en pantalla?\n ")
  90. opcion = input(" 'Si' para borrar / otra para descartar...: ")
  91. if opcion == 'Si':
  92. borrar_traduccion(encontrado)
  93. else:
  94. print("\n La traducción no existe...")
  95. input("\n Pulse [Enter] para continuar...")
  96.  
  97. def cantidad_registros():
  98. f = open("traductor.txt","r")
  99. f.readline()
  100. f.seek(0)
  101. cant_registros = len(f.readlines())
  102. f.close()
  103.  
  104. return cant_registros
  105.  
  106.  
  107. def borrar_traduccion(encontrado):
  108. f = open("traductor.txt","r")
  109. lineas = f.readlines()
  110. f.close()
  111.  
  112. f = open("traductor.txt","w")
  113. for linea in lineas:
  114. if linea!=encontrado:
  115. f.write(linea)
  116.  
  117. f.close()
  118.  
  119.  
  120.  
  121. def borrar_pantalla():
  122. if os.name == "posix":
  123. os.system ("clear")
  124. elif os.name == ("ce", "nt", "dos"):
  125. os.system ("cls")
  126.  
  127. def main():
  128. menu()
  129.  
  130. main()
   
Saludos y gracias.
Daniel



En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Mostrar frases alineadas extraídas de un archivo [Python]
« Respuesta #1 en: 28 Noviembre 2017, 04:34 am »

soy muy animal, pero te muestro como se puede hacer listado (de paso, nunca lo estás invocando)para que se vea más o menos como quieres, te toca modificarlo para dejarlo a tu gusto:
Código
  1.  
  2. print(" Listado de traducciones guardadas. ".center(50,'='))
  3. print(" {:^2} {:^30}  ".format('Ingles', 'Español'))
  4. print("-"*50)
  5.  
  6. with open('traductor.txt', 'r') as tra:
  7.    for linea in tra:
  8.        partes= linea.split( )
  9.        print(" {:20} {:20} ".format(partes[0],partes[1]))
  10.  
  11.  

En lo personal modificaría búsqueda para que sin importar si escriben con mayúsculas o minúsculas encuentren la palabra.En tu caso si no coinciden exactamente no lo hallarán, o sea si escriben home, chau no la encuentra ni a palos.
También prefiero trabajar con clases y diccionarios, pero podes tomarlo como que es subjetivo.
Sobre guardado no hay mucho para hacer, cumple su objetivo.

Código
  1. def main():
  2. menu()
  3.  
  4. main()
  5.  
no hablaré sobre todo el código, pero ésta parte me parece muy fea y redundante.
 Por último, llevará un muy buen tiempo hacer todas las traducciones necesarias para que sea decente como traductor, ni hablar del tamaño  y tiempo de lectura del archivo. Existen mejores opciones como usar las bibliotecas ya hechas para tal fin.
Sin ánimo de desanimarte, o sea sigue haciendo scripts para que aprendamos.
Saludos.
 



« Última modificación: 28 Noviembre 2017, 06:47 am por tincopasan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[python] necesito ayuda mostrar matriz
Scripting
marinas4 5 26,934 Último mensaje 29 Noviembre 2009, 21:44 pm
por Novlucker
[Python] - Contador de palabras en frases
Scripting
ChicoMaravilla 4 31,378 Último mensaje 18 Enero 2011, 21:17 pm
por Karcrack
Mostrar linea de un archivo [Python]
Scripting
Ricardo95 4 9,783 Último mensaje 22 Enero 2011, 15:10 pm
por Ricardo95
[Python]Mostrar nombre del archivo
Scripting
AdeLax 2 2,444 Último mensaje 26 Noviembre 2013, 23:37 pm
por AdeLax
Copiar en archivo frases con varias líneas(renglones)[C]
Programación C/C++
DanielPy 7 4,227 Último mensaje 1 Junio 2015, 17:10 pm
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines