Я пытался выполнить
import subprocess
p = subprocess.Popen("ls -la /etc", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdout.read().decode()
, что дает мне
FileNotFoundError: [Errno 2] No such file or directory: 'ls -la /etc': 'ls -la /etc'
После
Подпроцесс Python. Открыть с помощью var / args
Я сделал
import subprocess
p = subprocess.Popen(["ls", "-la", "/etc"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.stdout.read().decode()
Что сработало.
Почему это так? Почему я должен разделить мою команду и ее аргументы? В чем причина этого дизайна?
Версия Python:
3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC 7.3.0]