回答:
os.system("sudo python scale1.py")
まず、osモジュールをインポートする必要があります
import os
私はテストするためのATMを持っていませんが、これはこの質問に対する2番目の答えから来ています: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などのいくつかの古いモジュールと機能を置き換えます。引数をサニタイズするのに良い仕事をするので、シェルインジェクションからあなたを守ります。
https://docs.python.org/2/library/subprocess.html
もちろん、2番目のpythonスクリプトを実行するためにCLIを呼び出す必要はありません。それらをインポートできます。
harry sibが提案したようにsudoを使用できますが、最初のスクリプトを実行しているユーザーをsudoersファイルに追加する必要があります。
別のpythonスクリプトからpythonスクリプトを実行する最良の方法は、それをインポートすることです。2番目のスクリプトのメソッドには、スクリプトのロジックが必要です。
#Scale2.py
def run():
do_first()
do_second()
[...]
#コマンドラインから呼び出された場合のみ実行する
__name__ == '__main__'の場合:
run()
#Scale1.py
Scale2をインポートする
if(GPIO.input(23)== False):
Scale2.run()
cleanest答えになります。