subprocess.check_call 与标准输入

subprocess.check_call with stdin

我想用

subprocess.check_call(cmd)

stdin argument. Most tutorials I've found so far will recommend using Popen directly (e.g., here),但如果 cmd 出错,我真的需要异常。

关于如何获得的任何提示

import subprocess

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

能正常工作吗?

简单:

subprocess.check_call('patch -p1 < test.patch', shell=True)

不需要 运行 shell,您可以将文件对象作为 stdin:

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