gpt4 book ai didi

Python后台shell脚本通信

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:30 26 4
gpt4 key购买 nike

我有 2 个 python 脚本,foo.pybar.py。我在后台运行 foo.py 使用

python foo.py &

现在我想运行 bar.py 并使用此文件中的标准输出来触发 foo.py 中的脚本。这可能吗?我正在使用 Ubuntu 16.04 LTS。

最佳答案

你可以使用 UNIX named pipe为此。

首先,您在拥有 Python 文件的同一目录中通过执行 mkfifo named_pipe 创建命名管道对象。

您的 foo.py 可能如下所示:

while True:
for line in open('named_pipe'):
print 'Got: [' + line.rstrip('\n') + ']'

您的 bar.py 可能如下所示:

import sys

print >>open('named_pipe', 'wt'), sys.argv[-1]

因此,您可以像这样运行您的消费者进程:python foo.py &。最后,每次执行 python bar.py Hello 时,您都会在控制台中看到消息 Got: [Hello]

UPD:与 Paul 的回答不同,如果您使用 named 管道,则不必从另一个进程中启动其中一个进程。

关于Python后台shell脚本通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39302190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com