Python pathlib cast to str for subprocess
Python
pathlib
is part of Python standard library.
When using Python
subprocess,
in general, do str(mypath)
where type(mypath)
is pathlib.Path
.
Example:
#!/usr/bin/env python
from pathlib import Path
import subprocess
P = Path('~').expanduser()
O = subprocess.check_output(['dir', str(P)])
print(O)
if you don’t cast pathlib.Path
to str
:
TypeError: argument of type ‘WindowsPath’ is not iterable.
Notes
You should rarely if ever need shell=True
.
On Windows in particular, give the full path to a non-system executable.
Related: Idiomatic pathlib
Python