subprocess.run
can execute shell commands directly#
I often run shell commands in Python via the subprocess.run
command.
One thing that has always bugged me is that this required you to split commands into a list before it’d work properly.
For example, you’d have to do:
import subprocess
import shlex
subprocess.run(*shlex.split("ls -l"))
Today I discovered that you don’t have to do this!
There’s a shell=
keyword that can be used to tell subprocess to simply run the command directly in the shell.
For example:
import subprocess
subprocess.run("ls -l", shell=True)
Apparently there are some security considerations but this seems like a big papercut saver to me.
Fix phantom GitHub workflows in your ci-cd with protected branch rules
Automatically update pre-commit hook versions