Дополнение к посту про shell в subprocess.
Чем полезен режим вызова через shell? То есть, когда вы ставите аргумент shell=True.
Ваша команда запустится не напрямую, а через системный шел. А это значит что доступны все возможности шела.
Например:
- распаковка пути с символом "~"
subprocess.check_output('ls ~/', shell=True)
- распаковка переменных окружения
subprocess.check_output('ls $HOME', shell=True)
- использование пайпа команд
subprocess.check_output('cat $HOME/output.log | grep -n error', shell=True))
В общем, те, кто активно использует терминал, могут остальное додумать сами😉
#tricks