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
答案。