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.
cadena = texto_desde_archivo()
if "estas" in cadena:
print("la palabra está en la cadena")
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.
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 (https://www.tutorialspoint.com/python/string_split.htm)
a demás cumplirá tambien la funcion de sacar las comillas de la ecuación
Gracias :)
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)