Python - Pasar variable para ejecutar comando

   
Vista:

Pasar variable para ejecutar comando

Publicado por epicteto (43 intervenciones) el 15/02/2014 18:31:27
Hola

Tengo un programa .py desde el que quiero ejecutar sed para que me inserte una línea en un fichero en una posición concreta y con un contenido determinado. He decido usar sed porque creo que es más fácil que hacerlo con python.

En principio, para que inserte en archivo.txt, en la línea 3, la palabra texto, es tan fácil como hacer un .py con:

---
import os

os.system('sed -i "3i\texto" archivo.txt')
---



El problema es que el texto a insertar quiero que sea una variable, o sea, esto:

---
variable="texto a insertar"

import os

os.system('sed -i "3i\variable" archivo.txt')
-----

y así lo que hace es insertar el texto "variable", no el contenido de la variable. He probado de varios modos y no encuentro la sintaxis correcta... quizás incluso no se pueda hacer.

¿podéis ayudarme?

Gracias
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
Imágen de perfil de xve

Pasar variable para ejecutar comando

Publicado por xve (1229 intervenciones) el 15/02/2014 20:23:08
Hola Epicteto, creo que esto debería de funcionar-te:

1
2
3
4
5
variable="texto a insertar"
 
import os
 
os.system('sed -i "3i\%s" archivo.txt' % variable)

Nos puedes comentar si te funciona?
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

Pasar variable para ejecutar comando

Publicado por epicteto (43 intervenciones) el 15/02/2014 21:19:16
Pues sí, funciona !!

Muchas gracias xve
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