Programación Web y Scripting > Python

 Lectura De Archivos Planos

<< < (2/2)

NRM:
el programa procesa un entrada de datos a la vez?
existe la posibilidad de que te pases a Python 2.5?

nrm

b.to:

--- Cita de: "NRM" --- el programa procesa un entrada de datos a la vez?
existe la posibilidad de que te pases a Python 2.5?

nrm
--- Fin de la cita ---
Así es, mi programa obtiene de una base de datos las entradas y procesa cada registro a la vez.
Por cada registro que se lee, el programa lee toodo el archivo plano donde están las sustituciones, por lo que para procesar todos los registros de la base de datos (cerca de 2 millones y contando) se tarda muchot tiempo.  :comp:

Ah! si puedo cambiar a Python 2.5

 :D

NRM:
Python 2.5 trae soporte para Sqlite dentro de su librería estándar. Creo que esto solucionaría tu problema.

Aca te paso algunos links que te pueden ayudar:
http://docs.python.org/lib/module-sqlite3.html
http://www.netadmintools.com/art572.html

Saludos

nrm

joacoRamone:
Hola, fijate si esto te ayuda un poco.



--- Código: Text ---import sys def leer_archivo():    try:        arch = open(&#34;/home/joaco/programacion/linux/palabras.txt&#34;)    except IOError:        print &#34;Archivo no encontrado.&#34;        sys.exit(1)     # inicializamos el diccionario    correspondencias = {}    # una de las tantas maneras de crear un diccionario    correspondencias=dict([(linea[:-1].split()[0], linea[:-1].split()[1:len(linea)])                         for linea in arch.readlines()])     return correspondencias if __name__ == &#34;__main__&#34;:    d = leer_archivo()    for val, abr in d.iteritems():        if sys.argv[1] in abr:            print val 
No lo probe con un archivo grande, si queres pasame el tuyo y lo pruebo.

Saludos.

NRM:

--- Cita de: "joacoRamone" ---Hola, fijate si esto te ayuda un poco.



--- Código: Text ---import sys def leer_archivo():    try:        arch = open(&#34;/home/joaco/programacion/linux/palabras.txt&#34;)    except IOError:        print &#34;Archivo no encontrado.&#34;        sys.exit(1)     # inicializamos el diccionario    correspondencias = {}    # una de las tantas maneras de crear un diccionario    correspondencias=dict([(linea[:-1].split()[0], linea[:-1].split()[1:len(linea)])                         for linea in arch.readlines()])     return correspondencias if __name__ == &#34;__main__&#34;:    d = leer_archivo()    for val, abr in d.iteritems():        if sys.argv[1] in abr:            print val 
No lo probe con un archivo grande, si queres pasame el tuyo y lo pruebo.

Saludos.
--- Fin de la cita ---


--- Cita de: "b.to" ---Por otro lado, tengo un archivo plano (de 450 mil linead) en el que tengo una lista en la que el pirimer valor en de cada linea corresponde a un texto estandarizado al que corresponden el resto de los valores en esa misma linea, algo como lo siguiente:
"HERNANDEZ, HDZ. HDZ, HNDZ, HRDEZ, HRNDEZ"
"MARIA, MA., MA"
"FRANCISCO, FCO., FRCISCO,"

--- Fin de la cita ---

generando datos random cercanos a las 475000 lineas y armando un diccionario con estos me consumio cerca de 124 megas de ram. no se si sea la mejor solucion :(

nrm

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa