Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

300
Vistas
¿Cómo asignar un valor variable en python en los comandos de terminal?

Mi código:

 import os from xml.dom import minidom doc = minidom.parse("jobs.xml") job = doc.getElementsByTagName("job")[0] id = job.getElementsByTagName("id")[0] name = job.getElementsByTagName("name")[0] id_data = id.firstChild.data name_data = name.firstChild.data os.system('curl --compressed -H "Accept: application/xml" -X GET "http://localhost:19888/ws/v1/history/mapreduce/jobs/"') >>> /home/ankit/rrd-xml/task.xml

Quiero obtener los comandos como

 os.system('curl --compressed -H "Accept: application/xml" -X GET "http://localhost:19888/ws/v1/history/mapreduce/jobs/< variable value of name_data >"') >>> /home/ankit/rrd-xml/task.xml

¿Cómo puedo hacerlo en Python mismo?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Use comillas simples alrededor del comando, o incluso comillas triples, para que las comillas que forman parte del comando no se confundan con la cadena de Python:

 os.system('curl --compressed -H "Accept: application/xml" -X GET "http://localhost:19888/ws/v1/history/mapreduce/jobs/{}" >> /home/ankit/rrd-xml/task.xml'.format(name_data))

Eso funcionará, pero no es lo mejor. Sería mejor que usaras Python para realizar la solicitud HTTP. requests es un buen módulo para esto:

 import requests url = 'http://localhost:19888/ws/v1/history/mapreduce/jobs/{}'.format(name_data) headers = {'Accept': 'application/xml'} response = requests.get(url, headers=headers) with open('/home/ankit/rrd-xml/task.xml', 'a') as outfile: outfile.write(response.content)

Este código OBTENDRÁ la URL, configurando el encabezado Accept en application/xml y adjuntando la respuesta al archivo. La compresión se solicita de forma predeterminada.

over 4 years ago · Santiago Trujillo Denunciar

0

Lo que quiere es un formato de cadena simple.

 import os from xml.dom import minidom doc = minidom.parse("jobs.xml") job = doc.getElementsByTagName("job")[0] id = job.getElementsByTagName("id")[0] name = job.getElementsByTagName("name")[0] id_data = id.firstChild.data name_data = name.firstChild.data url = 'http://localhost:19888/ws/v1/history/mapreduce/jobs/{name}'.format(name=name_data) cmd = 'curl --compressed -H "Accept: application/xml" -X GET "{url}"'.format(url=url) os.system(cmd)
over 4 years ago · Santiago Trujillo Denunciar

0

Usar subprocess . El módulo de subprocess proporciona instalaciones más potentes para generar nuevos procesos y recuperar sus resultados; usar ese módulo es preferible a usar la función os.system .

 import subprocess import shlex command = shlex.split('curl --compressed -H "Accept: application/xml" -X GET http://localhost:19888/ws/v1/history/mapreduce/jobs/') with open('/home/ankit/rrd-xml/task.xml', 'a') as f: subprocess.Popen(command, stdout=f)
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda