One common kind of automation involves running several programs, none of which are actually Python applications. In this case, it's impossible to rewrite each program to create a composite Python application. In order to properly aggregate the functionality, the other programs must be wrapped as a Python class or module to provide a higher level construct.
The use case for this is very similar to the use case for writing a shell script. The difference is that Python can be a better programming language than the OS's built-in shell languages.
In some cases, the advantage Python offers is the ability to analyze the output files. A Python program might transform, filter, or summarize the output from a subprocess.
How do we run other applications from within Python and process their output?