2017-07-20 74 views
0

所以我有一個名爲controller.py的腳本,它具有與網站前端對接的命令。我要尋找的是,當一個命令運行的方式,例如:用命令臨時更改python腳本

   if command == 'F': 
       drivingSpeed = drivingSpeedActuallyUsed 
       for motorIndex in range(2): 
        runMotor(motorIndex, forward[motorIndex]) 
       time.sleep(straightDelay) 

在controller.py,它改變了名爲send_video.py幾秒鐘另一種語言的線,然後變回原來的

overlayCommand = '-vf transpose=2,transpose=2,dynoverlay=overlayfile=/home/pi/runmyrobot/images/hud.png:check_interval=500' 

我需要send_video.py中的行來更改圖像的目錄。我遇到的另一個問題是send_video.py只在重新啓動時更新,我需要告訴它自動更新。

+0

您如何設置'send_video.py'來從外部文件或數據庫加載它應該做的事情(例如加載鏈接),然後讓'controller.py'腳本更改文件/數據庫條目呢? – zwer

回答

1

自動更改代碼行非常不尋常,遠非我們所說的「最佳實踐」。這被稱爲自修改代碼,並且是幾十年前所做的研究主題。從那時起,它幾乎完全被拋棄,現在在除了最奇怪的情況之外,現在都被認爲是醜陋的黑客。

實現目標的典型做法是傳遞參數並在其他代碼中使用它們。

你的措辭有點不清楚(例如,我不明白那部分關於更新文件的內容),所以我不確定我是否正確地解決了你的問題,但我會試一試一般方法:

當您在controller.py中的代碼調用send_video.py中的代碼時,它將調用一個函數。對這個函數應該傳遞一個參數就是行。 send_video.py中的函數應該使用傳遞的參數來確定它應該使用哪一行(默認值或特殊值)。

請隨時向我們展示更多代碼或通過提出更多問題來改善您的問題,如果這樣做沒有足夠的幫助。

+0

我的意思是當controller.py被改變時,我需要機器知道它已被更新和更改,通常我必須重新啓動以使controller.py的任何和所有更改生效 – Chris