我有一个Python程序,其代码包含以下片段:
def Main():
pid = os.getpid()
print 'Process id: {}'.format(pid)
然后,在代码的其他部分,它继续监听其 STDIN。
此过程输出以下内容:
Process id: 3824
我想从另一个 Python 进程写入上面进程的 STDIN,给定其 PID。
我的问题是:我需要什么代码才能从第二个进程中执行此操作?
我使用的是Windows。
最佳答案
程序只能重定向其创建的进程(“子进程”)的标准输入和输出。要使用标准输出与另一个进程对话,该进程必须已经在监听您的声音。
操作系统控制进程的文件描述符所引用的内容。也就是说,进程的 stdin
将由操作系统和程序执行的上下文决定。要允许进程间通信,您可以查看操作系统为此提供的设施,例如 using a shell script and the piping operator .
您需要的是一个命名管道,它基本上是一个类似文件的对象,您可以对其进行写入和读取,并且充当进程之间的桥梁。不幸的是,Python 似乎在 Windows 上没有对此的“ native ”支持。您需要python for windows extension为此。
或者,您可以使用socket .
关于python - 如何写入另一个Python进程的STDIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45657562/