Python3 subprocess 交流示例

11 投票
1 回答
18691 浏览
提问于 2025-04-17 09:08

我刚接触到子进程的概念。

我只需要一个非常简单的win32示例,展示如何在parent.pychild.py之间进行通信。具体来说,就是从parent.py发送一个字符串到child.py,然后child.py对这个字符串进行修改,再把修改后的字符串发送回parent.py,最后在parent.py中打印出来。

我发这个帖子是因为我找到的例子要么不是win32的,要么没有使用子进程,这让我感到很困惑。

1 个回答

21

这里有一个简单的例子,符合你的要求。这个例子是用Python 3.x写的(如果你用的是2.x版本,需要稍微修改一下)。

parent.py

import subprocess
import sys

s = "test"
p = subprocess.Popen([sys.executable, "child.py"],
                     stdin=subprocess.PIPE,
                     stdout=subprocess.PIPE)
out, _ = p.communicate(s.encode())
print(out.decode())

child.py

s = input()
s = s.upper()
print(s)

我是在Mac OS X上写并测试这个的。这里没有特定于某个平台的代码,所以在Win32上也应该能正常工作。

撰写回答