2016-03-28 61 views
0

我想添加一個特定的shell命令的包裝。這將只在Linux中運行,我不關心跨平臺支持。此代碼有效,但有沒有更好的方法來實現這一目標?還是我打開自己的任何奇怪的行爲?簡單的Python shell封裝腳本(使用os.execv?)

import os 
import sys 

# Do my personal validation here 
do_some_validation(sys.argv) 

# Now call the real program 
os.execv('/usr/bin/some-command', sys.argv) 

謝謝!

回答

1

您可以使用subprocess

import subprocess 
subprocess.call(['/usr/bin/some-command', arg1, arg2]) 

subprocessos更好的方式,因爲它具有在命令的執行更多的控制權,而只是os它拋出來bash

+0

子過程爲我提供了什麼特別的功能?當我在發佈之前使用Google進行搜索時,我發現整個評論都有變化,但在這種情況下,我想用我正在打包的那個替換可執行文件。我不需要得到返回碼,out/err,做錯誤處理等等。 – user3827132

+0

在你的情況下,當然你可以使用os。根本不需要切換到子進程,但將來如果要擴展腳本,可能需要一些返回代碼,管道等,你需要它。 –