【问题标题】:How to start and stop scripts using another script?如何使用另一个脚本启动和停止脚本?
【发布时间】:2017-06-01 22:24:20
【问题描述】:

我没有很多编码经验,所以如果之前已经回答过,我很抱歉;我找不到任何有用的东西。

我刚刚在 Raspberry Pi 上完成了一个项目,该项目通过 PWM 运行一些 RGB LED 灯条。我有一个程序可以运行灯光,并且可以在几种不同的模式下正常工作(彩虹变换、频闪、纯色),但是对于每种新模式,我添加的程序都会变得更长、更复杂。我想让每个单独的模式成为它自己的脚本,由某种主脚本启动或停止。这样我就可以轻松地添加新模式,只需编写一个单独的程序并将其添加到主脚本的列表中,而不是在一个包含所有内容的巨型程序中四处乱逛,并希望我不会破坏某些东西。我想我想要的是一种简单的方法来启动具有某些特定设置(由从主脚本传递的变量确定)的 python 脚本,并且能够在主脚本接收到更改模式的命令时终止该脚本。

【问题讨论】:

  • SO 不是一个建议论坛;建议可能会过时。你试过什么了?请展示您的作品,以便我们为您提供帮助。
  • 为什么不将执行逻辑的所有代码分离到它自己的模块中,然后有一个主脚本来导入必要的函数并处理编排逻辑?将单独的脚本作为子进程运行听起来过于复杂。
  • 您可以创建一个 python 脚本并将其导入您的主脚本。 ,这可能会帮助你docs.python.org/2/tutorial/classes.html
  • 您可以使用subprocess.Popen 来运行并稍后杀死其他程序...包括其他python 程序。
  • 根据您的描述,我认为根据需要导入脚本是一个特别糟糕的主意。这是我们回避开放式问题的原因之一……有些人不同意我的观点!

标签: python raspberry-pi led


【解决方案1】:

保持代码可模块化确实是一个好习惯!如果您的代码不是面向 Objet 的,最好的方法是在与“main”相同的目录中创建另一个 python 文件(我们称之为 util.py)。您可以在主代码的开头简单地包含 util.py 和以下命令: 导入工具 然后,当您想使用您在 util.py 文件中定义的函数时,只需使用: util.myFunction(param1, param2,...)

【讨论】:

  • 如果您想重新编码依赖模块,这不是一个好主意。我认为这个问题最好通过运行子进程来解决。
猜你喜欢
  • 2020-08-28
  • 2019-11-21
  • 2012-09-05
  • 2014-03-12
  • 1970-01-01
  • 2019-04-22
  • 2022-08-22
  • 1970-01-01
  • 2016-03-19
相关资源
最近更新 更多