I want to call a program (.exe
), which is written in C++ and compiled, from Python. The executable takes as input two files and returns a score.
I need to do this for multiple files. So, I would like to write a small script in python which loops over multiple files, passes them to the executable and gets back the values.
Now, I have done my search and I know about SWIG and Boost::Python may be an option but I was trying to find if there is an easier way. I do not need to 'extend' the C++ program. I simply want to call it just like I would from a command line and get the returned number.
You can use the
subprocess
module for that.To run an external program and get its output, use
subprocess.check_output
on Python 2.7+. The example from the docs:check_call
just returns the return code of the program, not the output.