[Python 3.6] Como hacer que python lea una cadena especifica de un fichero?

Iniciado por n1sen, 25 Septiembre 2017, 03:01 AM

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

n1sen

Hola, vengo a preguntar lo que dice en el titulo, me explico:
Por ejemplo, yo en un fichero de texto tengo lo siguiente:
hola como estas

En vez de que me abra todo el archivo, necesito que lea una cadena especifica, en este caso, quiero que solo lea la cadena
"estas".

No pongo código de avance por que lo único que tengo es lo de abrir y cerrar ficheros.
Por las dudas, si busque por internet y no he encontrado nada.
Gracias.
null

engel lex

Código (python) [Seleccionar]
cadena = texto_desde_archivo()
if "estas" in cadena:
  print("la palabra está en la cadena")
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

n1sen

Gracias  :), pero pasa lo siguiente:
Volvamos a decir que en un fichero de texto tengo esto:
di "hola"
Ya, yo quiero que lea el fichero de texto, y si se encuentra con la frase "di" siga leyendo esa linea,
en caso contrario, seguir leyendo otra linea del fichero y
cuando se tope con las comillas, quiero que extraiga el texto que aparece entre comillas.
Pero tambien sucede que uno nunca sabra que es lo que pondra el usuario, por que puede poner
gato, perro, estas, como, etc.
Ahí esta el estancamiento que he tenido.
null

engel lex

Código (python) [Seleccionar]
if "di" in texto:
 arreglo = texto.split('"')
 decir = arreglo[1]
 print(decir)


esto es una manera poca ortodoxa pero funcional en python, split, partirá la cadena como un array basado en el separador indicado en este caso comillas dobles... entonces si el texto es
di "hola mundo"

quedará
[0]: "di"
[1]: "hola mundo"
[2]: ""


el ultimo queda vacio porque separó por comillas a pesar que luego de la ultima comilla no había nada

aquí detalle sobre split

a demás cumplirá tambien la funcion de sacar las comillas de la ecuación
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.


engel lex

ojo... lo bueno de ese metodo es que si el usuario introduce comillas adicionales no rompe el codigo, sino simplemente genera "comportamiento inesperado" la forma común sería con find y rfind, buscar la primera y ultima comilla, así permitiría usar comillas en medio del texto, pero esto te causaría usar más validaciones (tambien puedes poner como validación que si el largo del array es mayor que 3 lance un error, hay comillas de más)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.