Python - Sustituir en un array por cada línea leída en un diccionario

   
Vista:

Sustituir en un array por cada línea leída en un diccionario

Publicado por Jaigui (16 intervenciones) el 12/05/2014 16:21:29
Buenas tardes,

Tengo un problema al intentar realizar un script con python, a ver si me podríais echar una mano.

Tengo un string ('hola/que/tal/estamos'), y un diccionario de 20 líneas, digamos que en cada línea del diccionario hay un número ('1\n, 2\n...'),
lo que intento hacer es cambiar la palabra 'tal' por cada una de las líneas del diccionario, y que se cree un nuevo string para cada sustitución.

Lo he conseguido de la siguiente forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#Leer diccionario
f_dic = open('dic', 'r')
LineasCarpeta = f_dic.readline().strip()
LineasCarpeta2 = f_dic.readline().strip()
.....
LineasCarpeta20 = f_dic.readline().strip()
 
#Cambiar la ultima carpeta del string por cada linea en el diccionario
strCadena = 'hola/que/tal/estamos'
strCambio = urlCadena.split('/')
 
urlCambio[-1] = LineasCarpeta
cadena1 = urlCambio
print '/'.join(cadena1)
 
urlCambio[-1] = LineasCarpeta2
cadena2 = urlCambio
print '/'.join(cadena2)
 
.....
 
urlCambio[-1] = LineasCarpeta20
cadena3 = urlCambio
print '/'.join(cadena20)

De esta forma vería lo siguiente:

hola/que/tal/1
hola/que/tal/2
...
hola/que/tal/20



-----------------------------------------------------------------------------------------------------------------

Lo que me gustaría, para hacer un código más limpio, sería de leer el fichero completo;
LineasCarpeta = f_dic.readline()

y luego hacer que automáticamente se sustituya la última carpeta por cada línea del diccionario, y luego poder imprimirlas todas.

¿Sería posible?

Gracias de antemano, un saludo!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Sustituir en un array por cada línea leída en un diccionario

Publicado por UnoPorAhi (16 intervenciones) el 12/05/2014 17:39:05
Buenas,

Puedes leer todas las lineas de golpe facilmente:

1
LineasCarpeta = [linea.strip() for linea in  open('dic', 'r')]


LineasCarpeta sera una lista con todos los valores de las lineas del fichero

El codigo completo quedaria asi:

1
2
3
4
5
6
7
8
9
LineasCarpeta = [linea.strip() for linea in  open('dic', 'r')]
 
#Cambiar la ultima carpeta del string por cada linea en el diccionario
strCadena = 'hola/que/tal/estamos'
strCambio = urlCadena.split('/')
 
for linea in LineasCarpeta:
	strCambio[-1] = str(linea)
	print '/'.join(strCambio)

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sustituir en un array por cada línea leída en un diccionario

Publicado por Jaigui (16 intervenciones) el 12/05/2014 17:48:39
Buenas,

Gracias por la respuesta.

Hasta ahí si consigo llegar, el problema está en que no consigo sustituir la última carpeta del string por cada una de las líneas del diccionario que he leído.

Podría hacerlo mostrando línea a línea, pero la cuestión es simplificar el código al máximo.

Gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sustituir en un array por cada línea leída en un diccionario

Publicado por UnoPorAhi (16 intervenciones) el 12/05/2014 17:50:34
He actualizado el comentario, echale un vistazo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sustituir en un array por cada línea leída en un diccionario

Publicado por Jaigui (16 intervenciones) el 13/05/2014 09:53:00
Perfecto,

Ha funcionado, muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar