How do I execute multiple shell commands with a single python subprocess call?

How do I execute multiple shell commands with a single python subprocess call?

Use semicolon to chain them if theyre independent.

For example, (Python 3)

>>> import subprocess
>>> result = subprocess.run(echo Hello ; echo World, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
>>> result
CompletedProcess(args=echo Hello ; echo World, returncode=0, stdout=bHellonWorldn)

But technically thats not a pure Python solution, because of shell=True. The arg processing is actually done by shell. (You may think of it as of executing /bin/sh -c $your_arguments)

If you want a somewhat more pure solution, youll have to use shell=False and loop over your several commands. As far as I know, there is no way to start multiple subprocesses directly with subprocess module.

How do I execute multiple shell commands with a single python subprocess call?

Leave a Reply

Your email address will not be published.