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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Python ver información de un fichero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Python ver información de un fichero  (Leído 2,976 veces)
Joe Fraddy

Desconectado Desconectado

Mensajes: 277


Ver Perfil
Python ver información de un fichero
« en: 1 Marzo 2015, 04:05 am »

Hola amigos:

Estoy desarrollando una aplicación en modo texto en python que es capaz de ingresar datos como nombre, correo, fecha de cumpleaños etc...

En ese fichero puedo almacenar varios datos de usuarios, y me gustaría acceder a la información de solo un usuario dentro de ese fichero.

Saludos!!!


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Python ver información de un fichero
« Respuesta #1 en: 1 Marzo 2015, 04:12 am »

podrías hacerlo por lineas, pero tienes que lerr linea a linea y parsear la linea para poder comparar


En línea

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.
Joe Fraddy

Desconectado Desconectado

Mensajes: 277


Ver Perfil
Re: Python ver información de un fichero
« Respuesta #2 en: 1 Marzo 2015, 04:27 am »

se puede con readline() ???
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Python ver información de un fichero
« Respuesta #3 en: 1 Marzo 2015, 04:36 am »

si, sería con readline, y haces un break si consigues el dato buscado

Código
  1. f = open('somefile.txt','r')
  2. for line in f.readlines():
  3.    if(dato): break
  4. f.close()
« Última modificación: 1 Marzo 2015, 04:38 am por engel lex » En línea

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.
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Python ver información de un fichero
« Respuesta #4 en: 1 Marzo 2015, 04:46 am »

una forma podría ser crear listas y arreglos
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Python ver información de un fichero
« Respuesta #5 en: 1 Marzo 2015, 15:38 pm »

Almacenar configuraciones de usuario en un archivo de texto plus utilizar los métodos de lectura para parsear dicho archivo, es una técnica muy primitiva.

Lo que deberías hacer es SERIALIZAR un objeto (varios objetos que contengan los distintos datos del usuario) a un archivo binario, y cada vez que quieras cargar los datos de un user, deserializas los objetos y seleccionas el objeto que contiene los datos del usuario en cuestión.

Lo más parecido que he encontrado para serializar en python es usando el módulo pickle, que al parecer no es psoible codificar los datos para una serialización binaria, al menos a mi me genera un archivo de texto plano, pero sigue siendo una idea más elaborada.

Ejemplo:
Código
  1. import pickle, time
  2.  
  3. # Defino la Class 'UserData', que almacena la config del usuario.
  4. class UserData:
  5.  
  6.    def __init__(self, name, mail, birthday):
  7.        self.__name = name
  8.        self.__mail = mail
  9.        self.__birthday = birthday
  10.  
  11.    def Name(self):
  12.        return self.__name
  13.  
  14.    def Mail(self):
  15.        return self.__mail
  16.  
  17.    def Birthday(self):
  18.        return time.strptime(self.__birthday, '%d %B %Y')
  19.  
  20. # Instancio la class 'UserData' para 3 usuarios distintos.
  21. user1 = UserData('Elektro', 'ElektroStudios@ElHacker.Net', '8 September 1986')
  22. user2 = UserData('pedrito', None, None)
  23. user3 = UserData('jaimito', None, None)
  24.  
  25. # Instancio una lista de 'UserData' con los 3 usuarios.
  26. users = [user1, user2, user3]
  27.  
  28. # Serializo la lista a un archivo.
  29. with open('config.bin', 'wb') as f:
  30.     pickle.dump(users, f)
  31.  
  32. # Deserializo la lista desde el archivo.
  33. with open('config.bin', 'rb') as f:
  34.     loadedUsers = pickle.load(f)
  35.  
  36. # Instancio una lista de 'UserData' cargando los usuarios que tengan 'X' nombre.
  37. userMatches = [user for user in loadedUsers if user.Name() == 'Elektro']
  38.  
  39. # Muestro la informacion del primer usuario cargado.
  40. print userMatches[0].Name()
  41. print userMatches[0].Mail()
  42. print userMatches[0].Birthday().tm_year

Output:
Código:
Elektro
ElektroStudios@ElHacker.Net
1986
« Última modificación: 1 Marzo 2015, 15:40 pm por Eleкtro » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error al leer un fichero de texto en Python « 1 2 »
Scripting
CaronteGold 17 12,801 Último mensaje 20 Diciembre 2010, 20:26 pm
por CaronteGold
[python] Escribir en un fichero con ruta que no existe
Scripting
lnvisible 2 5,463 Último mensaje 8 Febrero 2011, 21:14 pm
por lnvisible
Informacion sobre fichero Linux
Programación C/C++
Leber 0 1,448 Último mensaje 21 Diciembre 2011, 14:01 pm
por Leber
[Python 3.6] Como hacer que python lea una cadena especifica de un fichero?
Scripting
n1sen 5 4,666 Último mensaje 25 Septiembre 2017, 03:40 am
por engel lex
Reemplazar información de un fichero
Programación C/C++
ciquee 9 3,078 Último mensaje 6 Mayo 2019, 01:17 am
por ciquee
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines