¿Llamar a un programa que no sea Python desde Python?

Actualmente estoy luchando por llamar a un programa que no sea de Python desde un script de Python.

Tengo unos ~ 1000 archivos que al pasar por este programa C ++ generarán ~ 1000 salidas. Cada archivo de salida debe tener un nombre distinto.

El comando que deseo ejecutar tiene la forma:

program_name -input -output -o1 -o2 -o3

Hasta la fecha he intentado:

import os

cwd = os.getcwd()

files = os.listdir(cwd)

required_files = []

for i in file:
    if i.endswith('.ttp'):
         required_files.append(i)

Entonces, tengo una variedad de los archivos necesarios. Mi problema: ¿cómo puedo iterar sobre la matriz y para cada entrada, pasarla al comando anterior (nombre_programa) como argumento y especificar una identificación de salida única para cada archivo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta