当前位置: 首页 > 知识库问答 >
问题:

从python脚本到已运行脚本的通信

李景天
2023-03-14

我在两个Python脚本之间进行通信时遇到一些问题。我对python和raspberry pi是相当陌生的,我已经发现了多种方法,经过一段时间的理解,这些方法对我来说是无用的。所以在花了几个小时之后,我想最好问问更有经验的人。

所以我正在做一个项目,我使用一个网页来通过多个覆盆子派控制多台机器。(4个覆盆子)您可以在网页上输入机器以及机器应该激活多长时间。然后,网页使用机器和时间执行Python脚本,作为覆盆子pi的参数运行,并在指定的时间内激活机器。到目前为止,一切都很好。

我也有一个小的2线液晶显示屏为每个树莓皮。此屏幕应每10秒左右更改一次,并在树莓上显示每台机器以及机器仍在运行的时间,然后更改为下一台。

因此,在屏幕上显示所有内容的脚本是一个无休止的循环,每10秒更改一次,但我不知道如何将新的运行时间正确地输入到正在运行的python脚本中。

我使用已经在python脚本中的值来激活机器,所以我想我可以以某种方式将信息从这个脚本发送到无尽的,已经在运行的LCD脚本。

但是我发现的大多数方法是停止并等待另一个脚本的信号。但它不会每10秒改变一次。

我现在知道的唯一方法是保存到文件并读取另一个脚本xD中的文件,但这不是很优雅。

我感谢我能得到的每一个帮助和建议。

几维鸟

共有1个答案

宋弘壮
2023-03-14

您可以使用数据库(SQLite是一个简单的基于文件的数据库系统,至少使用Perl,您可以将数据库直接放入内存)。

另一种方法是使用共享内存,无论是通过模块还是文件系统本身。

下面是一个示例,其中一个Python脚本将数据结构写入JSON文件,以/dev/shm共享内存空间,另一个脚本将JSON作为写入的数据结构读回:

输出脚本:

import json

file = "/dev/shm/data.json"

data = {
    "pi1_enabled": True,
    "pi1_run_mins": 30,
    "pi2_enabled": False,
    "pi2_run_mins": 30
}

with open(file, "w") as jsonfile:
    json.dump(data, jsonfile)

输入脚本:

import json

file = "/dev/shm/data.json"

data = json.loads(open(file).read())

print(data)

从输入脚本输出:

{'pi1_run_mins': 30, 'pi1_enabled': True, 'pi2_enabled': False, 'pi2_run_mins': 30}
 类似资料:
  • 我想执行我开发的三个python脚本。我发现了一个疑问,我怎么能使用python脚本呢? 我想把它转换成一个。因为我们的解决方案被认为是在没有安装python的机器上执行的,所以有一个独特的脚本会很有帮助。 编辑:我不知道我的老问题结束的原因,我知道如何使用pyinstaller,我的问题是如何使用python脚本执行3 python,或者如果可能的话。请,如果你要结束一个问题,请确保该问题是重复

  • 问题内容: 我想从PHP运行Python脚本。该脚本的语法很好,当我从命令行运行它时,它会在它旁边生成一个图像文件。当我从命令行运行PHP文件(包含Python exec)时,它将生成一个图像文件。很好。问题是:当我使用浏览器并运行PHP时,它不会生成任何图像文件。我使用的是Xubuntu OS。 问题答案: 问题是matplotlib后端设置。我更改为“ Agg”,并且plot函数正常运行。

  • 问题内容: 我期待从Python的MATLAB。我需要使用MATLAB Image Acquisition Toolbox从摄像机获取少量图像。 MATLAB似乎是一个不错的解决方案,因为图像采集很容易,之后我必须做一些图像处理。我已经搜索了很长时间,但仍然没有找到任何可用于Python的方法。 这是我的一些尝试: mlabwrap 1.1-运行MATLAB脚本: MATLAB脚本如下: 您可以使

  • 问题内容: 是否有任何聪明的方法可以通过ssh在远程主机上运行本地Bash功能? 例如: 是的,我知道这行不通,但是有办法实现吗? 问题答案: 您可以使用该命令通过来使功能在远程计算机上可用。有多个选项,具体取决于您要如何运行远程脚本。 要在远程主机上使用该功能: 更好的是,为什么还要麻烦管道: 或者,您可以使用HEREDOC: 如果要发送脚本中定义的所有函数,而不仅仅是发送,请像这样使用: 说明

  • 问题内容: 之前曾在不同程度上提出过这样的问题,但我觉得还没有以简明的方式回答,因此我再次提出。 我想在Python中运行脚本。可以说是这样的: 它获取文件位置,读取它,然后打印其内容。没那么复杂。 好吧,那我该如何在C#中运行它呢? 这就是我现在所拥有的: 当我传递位置和位置无效时。有人告诉我,我应该通过的,然后作为。 我已经寻找了一段时间,只能找到建议使用IronPython或类似工具的人。但

  • 问题内容: 我的以下代码有问题: callBash.py: sleep.sh: 我希望10秒钟后打印“结束”。(我知道这是一个愚蠢的示例,我可以简单地在python中睡眠,但是这个简单的sleep.sh文件只是作为测试) 问题答案: 使sleep.sh可执行并添加到参数列表中(如先前答案中所建议)可以正常工作。根据搜索路径,您可能还需要添加或其他合适的路径。(即,更改为。) 如果bash脚本的第一