Python - Pasar variable para ejecutar comando

 
Vista:
sin imagen de perfil
Val: 3
Ha disminuido su posición en 22 puestos en Python (en relación al último mes)
Gráfica de Python

Pasar variable para ejecutar comando

Publicado por epicteto (46 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
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Pasar variable para ejecutar comando

Publicado por xve (1646 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
sin imagen de perfil
Val: 3
Ha disminuido su posición en 22 puestos en Python (en relación al último mes)
Gráfica de Python

Pasar variable para ejecutar comando

Publicado por epicteto (46 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

Pasar variable para ejecutar comando

Publicado por Juan Palacios (1 intervención) el 22/09/2022 06:06:04
Gracias, a mi también me funcionó lo que quería hacer con una variable.

import os
archivo = (input("Introduce el numero de pensión: "))+'.pdf'

os.system("okular ./Archivo/DIV28/Carpetas/'Carpeta No. 1'/%s" % archivo)

Gracias de nuevo.
Saludos.
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