Comment Comment by theptip I agree. Starting a subprocess is fine. Using an existing tool (mkdir) was probably a better approach than reimplementing it.The error: you should never pass unescaped/untrusted input into a subshell.In Python, it’s the difference between the safe: def make_dir(path): subprocess.run([“mkdir”, “-p”, path]) Instead of: def make_dir_unsafe(path): subprocess.run(“mkdir -p “ + path, shell=True) The latter is easier to type because you don’t need to use the annoying list syntax, but it’s unsafe. If you are writing a library function a subshell is not a sound approach. parent theptip 4 years ago
The error: you should never pass unescaped/untrusted input into a subshell.
In Python, it’s the difference between the safe:
Instead of: The latter is easier to type because you don’t need to use the annoying list syntax, but it’s unsafe. If you are writing a library function a subshell is not a sound approach.