subprocess.check_call with stdin

时间:2016-05-11 08:29:43

标签: python subprocess

我想用

subprocess.check_call(cmd)

stdin argument。到目前为止,我发现的大多数教程都会建议直接使用Popen(例如here),但如果cmd出错,我确实需要例外。

有关如何获得的任何提示

import subprocess

subprocess.check_call('patch -p1 < test.patch')

正常工作?

2 个答案:

答案 0 :(得分:3)

无需运行shell,您可以将文件对象作为stdin传递:

with open('test.patch', 'rb', 0) as file:
    subprocess.check_call(['patch', '-p1'], stdin=file)

答案 1 :(得分:1)

易:

cat aaa   | awk '$3=="begin_time" {print $2,$9}' |grep .
pro 3