2013-04-07 125 views
2

命令工程我試圖從一個python代碼到義和文本分析器程序進行系統調用,我發現下面的一組語句不起作用。它不給我任何錯誤,但我沒有看到任何創建的輸出文件。當我在終端上運行相同的命令時,輸出文件會被創建。命令通過終端,但不是通過python系統調用

from subprocess import call 
candcStr = 'echo "Every Man Walks" | /home/candc-1.00/bin/candc --models /home/candc-1.00/models/boxer --output /tmp/test.ccg' 
args = shlex.split(candcStr) 
call(args) 

當我運行上面的代碼,控制檯顯示

Every Man Walks | /home/candc-1.00/bin/candc --models /home/candc-1.00/models/boxer --output /tmp/test.ccg 

看來好像管道重定向無法工作。有誰知道我該如何解決這個問題?謝謝!

+1

http://docs.python.org/2/library/subprocess.html#replacing-殼管道 – 2013-04-07 22:08:09

+0

@ AshwiniChaudhary謝謝,這工作! – ami91 2013-04-07 22:32:19

回答

4

您需要設置shell=True爲shell解釋命令,最重要的管道:

call(args, shell=True) 
+0

謝謝!這解決了我的問題 – ami91 2013-04-07 22:33:06