답변:
os.system("sudo python scale1.py")
먼저 os 모듈을 가져와야합니다.
import os
나는 atm과 함께 테스트 할 파이가 없지만 이것은이 질문에 대한 두 번째 답변에서 나옵니다 : https : //.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 과 . 인수를 살균하는 데 효과적이므로 쉘 주입 으로부터 보호합니다 .
https://docs.python.org/2/library/subprocess.html
물론 두 번째 파이썬 스크립트를 실행하기 위해 CLI 호출이 필요하지 않습니다.
harry sib가 제안한대로 sudo를 사용할 수 있지만 첫 번째 스크립트를 실행하는 사용자를 sudoers 파일 추가해야합니다 .
다른 파이썬 스크립트에서 파이썬 스크립트를 실행하는 가장 좋은 방법은 가져 오는 것입니다. 두 번째 스크립트의 메소드에 스크립트의 논리가 있어야합니다.
# Scale2.py 데프 실행 () : do_first () do_second () [...] # 커맨드 라인에서 호출 된 경우에만 실행 __name__ == '__main__'인 경우 : 운영()
# Scale1.py 수입품 Scale2 (GPIO.input (23) == False) 인 경우 : Scale2.run ()
cleanest
답 이 될 것입니다.