Answers:
os.system("sudo python scale1.py")
首先,您将需要导入os模块
import os
我没有带atm的pi来测试,但这来自该问题的第二个答案:https : //stackoverflow.com/questions/89228/calling-an-external-command-in-python
通常,使用子流程模块
subprocess.call(["sudo","python","scale1.py"])
用于命令行调用。
一个处理子流程调用结果的示例;
result = subprocess.check_output(['sudo','service','mpd','restart'])
子进程替换了几个较旧的模块和功能,例如os.system和os.spawn。它在清理参数方面做得很好,因此可以保护您免受shell注入的侵害。
https://docs.python.org/2/library/subprocess.html
当然,运行第二个python脚本不需要CLI调用,您可以导入这些脚本。
您可以按照harry sib的建议使用sudo,但是必须将运行第一个脚本的用户添加到sudoers文件中。
从另一个python脚本运行python脚本的最佳方法是导入它。您应该在第二个脚本的方法中具有脚本的逻辑:
#Scale2.py
def run():
do_first()
do_second()
[...]
#仅在从命令行调用时运行
如果__name__ =='__main__':
跑()
#Scale1.py
导入Scale2
如果(GPIO.input(23)== False):
Scale2.run()
cleanest答案。