Python 使子进程保持活动状态?

Python 使子进程保持活动状态?,python,process,subprocess,Python,Process,Subprocess,我正在尝试使用子进程打开另一个进程,该进程在主进程运行时应该处于活动状态。此主进程将向该子进程发送一些命令。但是,当我使用管道与该子进程通信时,它还会添加一个eot(传输结束)字符,这通常是在基于linux的操作系统中终止进程的字符 my_subprocess = subprocess.Popen("python", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE) my_subprocess.stdin.write("prin

我正在尝试使用子进程打开另一个进程,该进程在主进程运行时应该处于活动状态。此主进程将向该子进程发送一些命令。但是,当我使用管道与该子进程通信时,它还会添加一个eot(传输结束)字符,这通常是在基于linux的操作系统中终止进程的字符

my_subprocess = subprocess.Popen("python", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
my_subprocess.stdin.write("print 2+2\n")
stdout, stderr = my_file.communicate()
my_subprocess.stdin.write("print 3+5\n")
第一个调用生成^D,它是python shell的终止字符。因此,我得到如下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:对关闭的文件执行I/O操作

是否有一种方法可以使用子流程来实现此目的

如果要发送python命令,为什么不使用内置的
eval
?将节省很多麻烦。因为此子进程不是python。这只是一个让你理解的示例用法。什么是
my_file
?这是一个打字错误。我已经纠正了。如果子进程只处理i/O,可能会更简单。我认为python解释器内置了很多乱七八糟的东西:这不是最容易沟通的过程。