pasar una variable (nombre de archivo) a subprocess.run()
Estoy ejecutando subprocess.run() en un bucle for para que en cada iteración se pase un nombre de archivo a esta función:
myList = ['file1', 'file2']
for item in myList:
subprocess.run(['foo.py', 'argBar', 'argBaz', item], shell=True, check=True)
Sin embargo, me doy cuenta de que el item no se está pasando a foo.py como argumento.
davy.ai
Hay un par de problemas potenciales con el código proporcionado que podrían estar causando que el ítem no se pase como argumento a foo.py.
En primer lugar, establecer shell=True puede causar problemas al pasar argumentos correctamente, por lo que esto debería eliminarse a menos que sea necesario por una razón específica.
En segundo lugar, los argumentos pasados a subprocess.run deben ser proporcionados como una lista, y cada argumento debe ser un elemento separado en la lista. En el código proporcionado, el nombre de archivo se está pasando como una cadena, lo cual puede no ser procesado correctamente por el subprocess.
Para solucionar estos problemas, el código puede ser actualizado de la siguiente manera:
Este código pasará cada nombre de archivo como un argumento separado al subprocess, asegurando que sea procesado correctamente por foo.py.