美文网首页
Python 进程管道输入

Python 进程管道输入

作者: 家中古词 | 来源:发表于2018-12-03 18:32 被阅读0次

    在 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 开始时,程序就会开始执行,如果你这之后代码没有写对,错误信息可能被要运行的进程的输出给刷屏。所以这种场景下,一般会选择将子进程的输出捕获,变成父进程的输出。

    相关文章

      网友评论

          本文标题:Python 进程管道输入

          本文链接:https://www.haomeiwen.com/subject/plfucqtx.html