Возможно, вам нужен модуль подпроцесса .
Как минимум:
import subprocess
retcode = subprocess.call(["/path/to/myCprogram", "/path/to/file.c"])
if retcode == 0:
print "success!"
Это запустит программу с аргументами и вернет код возврата.
Обратите внимание, что subprocess.call будет блокироваться до тех пор, пока программа не будет завершена, поэтому, если она не выполняется быстро, весь графический интерфейс Tkinter перестанет перерисовываться, пока не завершится.
Для более продвинутого использования вы можете использовать subprocess.Popen
. Это потребует от вас опроса, пока команда не будет выполнена, но позволит вам сделать это с меньшим количеством блокировок.
Если ваша программа на C выводит HTML в стандартный формат, вам нужно будет передать вывод следующим образом:
proc = subprocess.Popen(["/path/to/myCprogram", "/path/to/file.c"],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, err_output = proc.communicate()
# output will now contain the stdout of the program in a string