使用python執行linux命令,pythonlinux命令
python版本是2.7.12
一、簡單的擷取linux命令的執行結果,比如:擷取一個PID的進程樹結構,linux命令是pstree -p pid,在python中有一個模組可以方便的擷取。至於有時候擷取的結果是亂碼的情況,請參考之前的隨筆:ubuntu常用的一些命令
命令是 commands.getoutput(cmd),
cmd = "pstree -p %s"%pidresult = commands.getoutput(cmd)
二、開啟一個新的進程來執行指令檔,就需要使用python中另一個模組了,subprocess
接下來進行簡單的函數說明
1 subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)調用進程會等待子進程執行args結束,然後將returncode返回。
2 subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False) 調用進程會等待子進程執行args結束,然後將他的輸出以byte string形式返回。注意:如果return code是非零值,將產生一個CalledProcessError異常,
如果想以子進程的形式調用命令,則需要使用Popen類。
subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False,shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
預設情況下,他會開一個子進程,並且是非阻塞。