Python - Ejecutar programas externos desde Python introduciendo variables en la llamada

   
Vista:

Ejecutar programas externos desde Python introduciendo variables en la llamada

Publicado por Al (3 intervenciones) el 21/10/2015 10:25:51
Buenos dias,

En esta ocasion tengo una duda sobre como ejecutar un programa externo desde Pyhton, pero incluyendo variables del propio Python en la llamada.

Lo he intentado de las siguientes formas:

Utilizando subprocess.call :

Si incluyo en la llamada los nombres de los archivos a utilizar, funciona correctamente:

1
hmmer1=subprocess.call("D:\Python_Scripts\HMMer3\hmmsearch.exe --tblout hmmTestTab.out SDHA.hmm Test.fasta")

Pero si intento pasarle los nombres de los archivos usados en la llamada (hmmTestTab.out, SDHA.hmm, Test.fasta) dentro de variables definidas en el propio script Python (outfile, hmm_prof, fastafile),
el programa me dice que no puede abrir los archivos

1
hmmer2=subprocess.call("D:\Python_Scripts\HMMer3\hmmsearch.exe --tblout outfile hmmprofile fastafile")

Tambien probe con Popen:

Si le paso los parametros en la orden funciona,

1
hmmer3=Popen(['D:\Python_Scripts\HMMer3\hmmsearch.exe', '--tblout','hmmTestTab.out', 'SDHA.hmm','Test.fasta'])

Pero si intento interpolar variables de Python, tampoco me funciona:

1
hmmer4=Popen(['D:\Python_Scripts\HMMer3\hmmsearch.exe', '--tblout','outfile', 'hmmprofile','fastafile'])

Mi intencion es que el script me permita pasarle los valores de la llamada como argumentos a Python y este los utilice luego para llamar al programa externo.

El error que recibo es:

1
Error: Failed to open sequence file fastafile for reading

¿Podria alguien ayudarme a entender como pasar estos valores de forma eficiente y hacer que el script funcione?

Saludos
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