Foros del Web » Programando para Internet » Python »

Leer, y modificar fichero si se cumple tal condición.

Estas en el tema de Leer, y modificar fichero si se cumple tal condición. en el foro de Python en Foros del Web. ¡Hola! Bueno, al grano xD~ tengo que hacer lo siguiente: Solicitar el nombre del jugador, se busca en el archivo records.txt y si no existe ...
  #1 (permalink)  
Antiguo 28/10/2010, 18:27
Avatar de Mar91  
Fecha de Ingreso: octubre-2010
Mensajes: 7
Antigüedad: 14 años
Puntos: 1
Leer, y modificar fichero si se cumple tal condición.

¡Hola!
Bueno, al grano xD~ tengo que hacer lo siguiente:
Solicitar el nombre del jugador, se busca en el archivo records.txt y si no existe se lo agrega y se vuelve al menu.

Ya creé el archivo "records.txt", está vacío, a medida que ejecuto el programa se agregan nombres y se va llenando... hasta ahora hice esto:

Código:
fichero = open('records.txt', 'r')

nombre = raw_input('Nombre: ')
f = open('records.txt', 'a' )
f.write(nombre + '\n')
f.close()

fichero = open('records.txt', 'r')
for linea in fichero:
  print linea


fichero.close()
Se me agrega el nombre y ya, no sé como condicionar para que se me agregue solo si no está en la lista D:


Estoy muy perdida, denmen una mano en eso plis! :S

pd:
Y además, esto tiene que ver con un juego (SIMON) y al fallar se tiene que mostrar la posición del jugador en el record y demás... Si tienen alguna pista para darme con respecto a esto también me vendría muy bien...
  #2 (permalink)  
Antiguo 28/10/2010, 21:58
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Leer, y modificar fichero si se cumple tal condición.

Bienvenida al foro Mar91

Este problema se puede resolver muy bien usando base de datos, específicamente si la base de datos es pequeña sqlite3 (que viene por defecto en python) es muy buena opción.

Pero si son con fines académicos, entonces al momento de insertar primero checa si tu nombre de jugador esta en el archivo.

Tampoco se como este estructurado tu archivo si guardas algo ademas del nombre o que se yo.

Te dare una mano:
Código Python:
Ver original
  1. fichero = open('records.txt', 'r')
  2. for line in fichero.read().split('\n'):
  3.     print line
  4.     if line == nombre:
  5.         print nombre, "esta en el archivo"
  6. f.close()
  #3 (permalink)  
Antiguo 29/10/2010, 21:42
Avatar de Mar91  
Fecha de Ingreso: octubre-2010
Mensajes: 7
Antigüedad: 14 años
Puntos: 1
Respuesta: Leer, y modificar fichero si se cumple tal condición.

Gracias por la ayuda ^^

Pero seré tonta, que no he podido aprobecharla. No sé que carajo hacer para que NO se me agregue el nombre al fichero si ya está antes.

No sé si me has iterpretado mal, me he expresado mal, o realmente estás dandome alguna pista que no logro pillar xD.

Igual, gracias ^^
  #4 (permalink)  
Antiguo 29/10/2010, 22:39
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Leer, y modificar fichero si se cumple tal condición.

No diría que es una pista por que tiene código, pero tampoco es la solución por que no hace lo que pides.

Pero dime en que parte se te complica?
Mira cuando estaba en primero (por que todavía soy estudiante) lo que hacia era hacer pequeños programas que hicieran una función especifica por ejemplo, leer un registro, checar si el registro esta en el archivo, escribir registro en archivo y teniendo estos programas ya solo los uno de la siguiente manera.

Leer un registro
Checar si registro esta en archivo
Si no esta escribir registro en archivo

Te daría el código y ya, pero eso no ayudaría en nada a tu formación profesional.
Pista: Si ya viste funciones, separa tu código en funciones. Si no entonces separalo en bloques de código.
  #5 (permalink)  
Antiguo 01/11/2010, 11:00
Avatar de Mar91  
Fecha de Ingreso: octubre-2010
Mensajes: 7
Antigüedad: 14 años
Puntos: 1
Respuesta: Leer, y modificar fichero si se cumple tal condición.

Cita:
Te daría el código y ya, pero eso no ayudaría en nada a tu formación profesional.
Si no lo puedo hacer obviamente es porque no se me ocurre cómo. Si me dieras el código y me explicares los porqué y cómo del mismo, porsupuesto que entendería, y ayudaría a mi formación profesional porque habré entendido cómo aplicar lo que ya sé.

Igual... un amigo ya me ayudó y me las pude arreglar :). Lo del click en figuras pude deducirlo de otro juego que nos habían dado de ejemplo.

Gracias por la ayuda! ^^

Lo que sí... no me enteré de cómo hacer que salga la lista por orden de mérito... pero un fin, era un detalle.
¿Te podría pasar el programa por PM y me dices cómo se hace? Yo ya entregué, pero me quedó esa curiosidad.
  #6 (permalink)  
Antiguo 01/11/2010, 16:02
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Leer, y modificar fichero si se cumple tal condición.

Cita:
Iniciado por Mar91
Si no lo puedo hacer obviamente es porque no se me ocurre cómo. Si me dieras el código y me explicares los porqué y cómo del mismo, porsupuesto que entendería, y ayudaría a mi formación profesional porque habré entendido cómo aplicar lo que ya sé.
Ok para la próxima te lo explicare con peras para que lo puedas resolver con manzanas. De hecho lo haré ahora mismo.
Código Python:
Ver original
  1. archivo = [1, 2, 3] #Imagina que esta lista es tu archivo y que cada numero es una linea
  2. n = 4 #Esto es una linea leida por el teclado
  3. if n in archivo:
  4.     print "No hacer nada ya estoy en el archivo"
  5. else:
  6.     print "No estoy en archivo meteme en el archivo"
  7.     archivo.append(3) #Lo metemos al achivo y listo


Cita:
Iniciado por Mar91
Igual... un amigo ya me ayudó y me las pude arreglar :). Lo del click en figuras pude deducirlo de otro juego que nos habían dado de ejemplo.
Bueno usar un entorno bastante inestable (Como PythonG) ya sea en Windows o Linux es un dolor de cabeza. No se por que lees enseñan con ese IDE en especifico. Ya se que viene con un libro en español para aprender python pero por que no enseñan con cosas estándar. Eso de usar PythonG es como usar conio.h en C. Estas universidades de ahora.

Cita:
Iniciado por Mar91
Gracias por la ayuda! ^^
Eso fue sarcasmo?

Cita:
Iniciado por Mar91
Lo que sí... no me enteré de cómo hacer que salga la lista por orden de mérito... pero un fin, era un detalle.
¿Te podría pasar el programa por PM y me dices cómo se hace? Yo ya entregué, pero me quedó esa curiosidad.... y la próxima vez que veo a mi profesor es en el parcial xD.
lista.sort() ?

Cita:
Iniciado por Mar91
Edito: hice doble post sin querer, sorry D: . No encuentro el botón para eliminar el mensaje -.-
Tienes un botón de editar. En al parte inferior del post.

Etiquetas: condición, cumple, fichero, modificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:33.