4
我花了好幾個小時試圖弄清楚如何將多個參數傳遞給應該由subprocess.Popen執行而沒有任何運氣的python腳本。python:爲Popen命令傳遞多個參數
腳本:
command = ['/usr/bin/python', '/tmp/script.py mcl=NULL mtp=data mnm=DS4INST \
mno=NULL mse=NULL mce=cll01']
result = subprocess.Popen(command, stdout = subprocess.PIPE, \
stderr = subprocess.PIPE)
out, err = result.communicate()
print out, err
我收到以下錯誤消息:
python: can't open file '/tmp/script.py mcl=NULL mtp=data mnm=DS4INST mno=NULL \
mse=NULL mce=cll01': [Errno 2] No such file or directory
然而,當我直接從殼執行腳本
/usr/bin/python /tmp/script.py mcl=NULL mtp=data mnm=DS4INST mno=NULL \
mse=NULL mce=cll01
我接收期望的輸出一個nd錯誤消息未生成。
請指教。
這一個,由於某種原因分別執行script.py與每個參數 – m1k3y3 2011-12-22 08:56:40
@ m1k3y02 - 然後我會嘗試妥協:'['/ usr/bin/python','/tmp/script.py','MCL = NULL mtp = data ...']' – eumiro 2011-12-22 09:08:13
它可以工作,但sys.argv可以將所有參數識別爲一個,所以需要額外的解析,我可以處理。非常感謝。 – m1k3y3 2011-12-22 09:30:02