Мне нужно запустить proccess в терминале, чтобы захватить вывод из него.Захват вывода с терминала
import subprocess
subprocess.check_output(["my_util", "some_file.txt", " | grep 'Some data1' | awk '{print $2}'"])
#or
subprocess.check_output(["my_util", "full_path/some_file.txt", "| grep 'Some data1'", "| awk '{print $2}'"])
И ничего не происходит в REPL, в то время как его запуск в терминале вручную дает мне правильный выход.
обновление:
выход из возвышенного текста:
my_util FAIL formats: can't open input pipe `| grep 'Sample data1'': premature EOF
my_util FAIL formats: can't open input pipe `| awk '{print $2}'': premature EOF
Traceback (most recent call last):
File "/test1.py", line 4, in <module>
"| grep 'Sample data1'", "| awk '{print $2}'"])
File "/usr/lib/python2.7/subprocess.py", line 544, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '["my_util", "full_path/some_file.txt", "| grep 'Some data1'", "| awk '{print $2}'"]' returned non-zero exit status 2
Вы уверены, что вы не получите исключение? – Brionius
@Brionius, да. – Mataba
@Brionius, я обновил сообщение – Mataba