Я знаю, как запустить команду, используя cmd = subprocess.Popen, а затем subprocess.communicate.Большую часть времени я использую строку с токеном shlex.split в качестве аргумента argv для Popen.Пример с "ls -l":
import subprocess
import shlex
print subprocess.Popen(shlex.split(r'ls -l'), stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE).communicate()[0]
Однако каналы, похоже, не работают ... Например, в следующем примере возвращается примечание:
import subprocess
import shlex
print subprocess.Popen(shlex.split(r'ls -l | sed "s/a/b/g"'), stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE).communicate()[0]
Можете ли вы сказать мне, чтоЯ делаю неправильно, пожалуйста?
Thx