在 Python 中执行一个可执行程序,并且将一个 Python 字符串作为子进程的输入。
def Run(prog, inputs):
proc = subprocess.Popen([prog],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
proc.stdin.write(bytes(inputs, 'utf-8'))
proc.stdin.close()
for line in proc.stdout:
sys.stdout.write(line.decode())
proc.stdout.close()
使用 stdin=subprocess.PIPE
,就可以将 proc.stdin
当作一个文件类型来写。但因为 Popen
开始时,程序就会开始执行,如果你这之后代码没有写对,错误信息可能被要运行的进程的输出给刷屏。所以这种场景下,一般会选择将子进程的输出捕获,变成父进程的输出。
网友评论