I think one of the major differences between R and Python is that when a dumb decision is made in the Python standard library, you know there was a ton of arguing and intellectual debate before the decision was made. Bad decisions in R feel like a dime a dozen and that they were made arbitrarily by some person not paying a whole lot of attention
Referring to system2 of course
The bad decision in Python is defaulting to check=False for a brand new function https://docs.python.org/3/library/subprocess.html#subprocess.run but at least the documentation is excellent and it is easy to specify check=true once you realize that exit codes matter
subprocess — Subprocess management

Source code: Lib/subprocess.py The subprocess module allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes. This module intends to replace seve...

Python documentation