我使用subprocess.call像下方的外殼腳本:如何運行置於不同的文件夾中從蟒
subprocess.call([「須藤./order_fc_prioritizer/run.sh」])
但它說沒有這樣的文件或目錄
我使用subprocess.call像下方的外殼腳本:如何運行置於不同的文件夾中從蟒
subprocess.call([「須藤./order_fc_prioritizer/run.sh」])
但它說沒有這樣的文件或目錄
您可以使用絕對,而不是相對,文件路徑到您的腳本。
傳遞一個列表以call()
與命令和參數分成單獨的列表元素:
subprocess.call(['sudo', './order_fc_prioritizer/run.sh'])
參見文檔,部分Frequently Used Arguments。
args是所有調用所必需的,並且應該是字符串或程序參數的序列 。提供參數序列通常首選爲 ,因爲它允許模塊處理任何所需的參數轉義和引用(例如允許文件名稱中的空格) 。如果傳遞單個字符串,則任何一個shell都必須爲True(請參見下面的 ),否則字符串必須簡單地命名要執行的程序 而不指定任何參數。
你也可以使用shlex.split()
創建參數列表:
import shlex
subprocess.call(shlex.split('sudo ./order_fc_prioritizer/run.sh'))
您可以考慮使用subprocess.Popen()
基本上subprocess.call()
僅僅是一個輔助函數:
proc = subprocess.Popen(cmd, cwd=PATH)
proc.wait()
但Popen()有一個關鍵字參數cwd,這是工作總監y在哪裏執行命令(產生進程)。
你能告訴我們你的目錄結構是什麼樣子嗎? – 2015-03-13 12:20:32