gpt4 book ai didi

python - 从 Python 调用 Perl 脚本不断返回值

转载 作者:太空狗 更新时间:2023-10-30 03:05:05 26 4
gpt4 key购买 nike

我在这个网站上发现了一个问题,它告诉我如何调用 Perl来自 Python 的脚本.我目前正在使用以下代码行来实现此目的:

pipe = subprocess.Popen(["perl", "./Perl_Script.pl", param], stdout=subprocess.PIPE)
result = pipe.stdout.read()

这非常有效,但唯一的问题是 Perl 脚本需要几分钟才能运行。在 Perl 脚本的末尾,我使用一个简单的 print 语句来打印我需要返回给 Python 的值,该值在 Python 中设置为 result 变量。

有没有一种方法可以每隔几秒在我的 Perl 脚本中包含更多打印语句,这些语句可以连续返回给 Python(而不是等待几分钟并在最后返回一长串)?

最终,我正在做的是使用 Perl 脚本获取数据点,然后将这些数据点发送回 Python 以绘制眼图。我不想在 Perl 脚本运行完毕后等待几分钟来绘制眼图,而是希望将数据片段连续返回给 Python,让我的绘图每隔几秒更新一次。

最佳答案

默认的 UNIX stdio 缓冲区至少为 8k。如果你写的小于 8k,你最终会等到程序结束才刷新缓冲区。

告诉 Perl 程序停止缓冲输出,并且可能告诉 python 不要通过管道缓冲输入。

$| = 1;

在您的 Perl 程序中取消缓冲 STDOUT。

关于python - 从 Python 调用 Perl 脚本不断返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13634723/

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