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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python 3.5.2] Buscar dentro de un archivo de texto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python 3.5.2] Buscar dentro de un archivo de texto  (Leído 3,666 veces)
Geormarsch

Desconectado Desconectado

Mensajes: 160



Ver Perfil
[Python 3.5.2] Buscar dentro de un archivo de texto
« en: 17 Julio 2017, 05:20 am »

Hola buenas noches.
Estoy haciendo éste código que por el momento crea un archivo de texto con lineas que almacenan un RUT y un TALLER.

Lo que quiero que haga la opción 2, sería buscar dentro del archivo de texto que se crea y luego leerlo y ver si es que el RUT se repite más de 1 vez, lógicamente hablando si se repite sería porque está con otro TALLER guardado.

Código:
195194467 chile
197632782 peru
195194467 colombia

Es ahí donde la opción 2 debería tener una salida así.

>> 195194467 chile
>> 195194467 colombia

Por el momento al tipear en la opcion 2 y busca en el archivo, sólo imprime el primer RUT que encuentra, ya que ahí termina el ciclo for, no sé como hacer para ver si en el archivo de texto hay más de 1 rut asociado con diferente TALLER

Código
  1. #!usr/bin/python
  2. #-*- coding: utf-8 -*-
  3.  
  4.  
  5.  
  6. def menu():
  7.  
  8.    print ("1 --- AGREGAR PERSONA")
  9.    print ("2 --- BUSCAR RUT")
  10.    print ("3 --- MOSTRAR BASE DE DATOS\n")
  11.  
  12.  
  13.    opcion = int(input("OPCIÓN: "))
  14.  
  15.    if opcion == 1:
  16.        print ("EL RUT DEBE SER INGRESADO SIN PUNTOS NI GUIÓN")
  17.        x = 0
  18.  
  19.        while (x == 0):
  20.            rut = input("RUT: ")
  21.            taller = input("TALLER: ")
  22.  
  23.            escritura_datos = open('base_datos_talleres_laborales.txt', 'a')
  24.            escritura_datos.write(rut)
  25.            escritura_datos.write(" ")
  26.            escritura_datos.write(str(taller + '\n'))
  27.  
  28.            continuar = str(input("CONTINUAR? (S/N): "))
  29.            if continuar == "s" or continuar == "S":
  30.                continue
  31.            if continuar == "n" or continuar == "N":
  32.                escritura_datos.close()
  33.                menu()
  34.  
  35.    if opcion == 2:
  36.        buscar_rut = input("RUT A BUSCAR: ")
  37.        leer_bd = open('base_datos_talleres_laborales.txt', 'r')
  38.  
  39.        for x in leer_bd:
  40.            if buscar_rut in x:
  41.                print (x)
  42.  
  43.            else:
  44.                print ("RUT NO REGISTRADO")
  45.                break
  46.  
  47.        print ("PRESIONA UNA TECLA PARA IR AL MENU")
  48.        tecla = input()
  49.        menu()
  50.  
  51.    if opcion == 3:
  52.        lectura = open('base_datos_talleres_laborales.txt', 'r')
  53.        imprimir = lectura.read()
  54.        print ('\n')
  55.        print (imprimir)
  56.        print ("PRESIONA UNA TECLA PARA IR AL MENU")
  57.        tecla = input()
  58.        menu()
  59.  
  60.    else:
  61.        print ("OPCIÓN NO VÁLIDA")
  62.        menu()
  63.  
  64.  
  65.  
  66.  
  67. menu()


En línea

"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [Python 3.5.2] Buscar dentro de un archivo de texto
« Respuesta #1 en: 17 Julio 2017, 20:58 pm »

Tienes un else en el if. Si uno d elso registros que recorre no es lo que quieres, va a dar como que no existe. Simplemente, quita el else.

Luego, al acabar el for, comprueba si has encontrado algún registro o no (por ejemplo, poniendo una variable inicializada a false a true cuando entre en el if). En caso de que no, muestras el mensaje de que no se ha encontrado.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines