如果你说的是python解释器或CMD.exe,它是脚本的“父”那么不可能。在每一个类似POSIX的系统中(现在你运行的是Windows,这似乎有一些我不知道的怪癖,YMMV),每个进程都有三个流,标准输入、标准输出和标准错误。Bu default(在控制台中运行时)它们被定向到控制台,但是可以使用管道符号进行重定向:python script_a.py | python script_b.py
这将脚本a的标准输出流与脚本B的标准输入流相关联。在本例中,标准错误仍会转到控制台。请参阅Wikipedia上关于standard streams的文章。
如果您在讨论子进程,可以像这样从python启动它(如果您希望双向通信,stdin也是一个选项):import subprocess
# Of course you can open things other than python here :)
process = subprocess.Popen(["python", "main.py"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
x = process.stderr.readline()
y = process.stdout.readline()
process.wait()
有关管理进程的信息,请参见Pythonsubprocess模块。对于通信,process.stdin和process.stdout管道被认为是标准的file objects。
对于使用管道,从标准输入中读取lassevk建议您执行以下操作:import sys
x = sys.stderr.readline()
y = sys.stdin.readline()
sys.stdin和sys.stdout是如上所述在sys模块中定义的标准文件对象。您可能还想看看pipes模块。
使用readline()读取数据(如我的示例所示)是获取数据的一种非常天真的方法。如果输出不是面向行的或不确定的,您可能希望查看polling,但不幸的是,它在windows中不起作用,但我相信有其他选择。