網上的資料說python調用linux系統命令的方法大概有幾種方法。
os.system(command)
os.popen(command)
os.spawn(command)
subprocess.call(["cmd","arg1","arg2"],shell=True)
commands.getoutput(command)
但是從python2.4開始已經明確說明,subprocess會在後續的發展中代替其他幾個老的模塊或函數,所以我們還是趕緊習慣用subprocess,不用其他函數。
subprocess用法
<pre name="code" class="plain"><pre name="code" class="python"><pre name="code" class="python">#!/usr/bin/env python
#coding=utf-8
import subprocess
command = "ls /root" # the shell command
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=None, shell=True)
result = process.stdout.readlines()
在運行subprocess.Popen()方法中,python實際是創建了一個子進程在執行所指定的系統命令 "ls /root",也就是說,在執行完成"ls /root"命令後,子進程會毀滅掉,
所以,在調用subprocess.Popen()方法改變的系統變量會沒有生效。