執行命令:
[python]view plain
copy
>>> subprocess.call([
"ls"
, "-l"
])
0>>> subprocess.call("exit 1"
, shell=
true
) 1
測試呼叫系統中cmd命令,顯示命令執行的結果:
[python]view plain
copy
x=subprocess.check_output([
"echo"
, "hello world!"
],shell=
true
(x)
"hello world!"
測試在python中顯示檔案內容:
[python]view plain
copy
y=subprocess.check_output([
"type"
, ],shell=
true
(y)
#include
using namespace std;
......
檢視ipconfig -all命令的輸出,並將將輸出儲存到檔案tmp.log中:
[python]view plain
copy
handle = open(r
'd:\tmp.log'
,'wt'
) subprocess.popen(['ipconfig'
,'-all'
], stdout=handle)
檢視網路設定ipconfig -all,儲存到變數中:
[python]view plain
copy
output = subprocess.popen([
'ipconfig'
,'-all'
], stdout=subprocess.pipe,shell=
true
) oc=output.communicate()#取出output中的字串
#communicate() returns a tuple (stdoutdata, stderrdata).
(oc[
0])
#列印網路資訊
windows ip configuration
host name . . . . .
我們可以在popen()建立子程序的時候改變標準輸入、標準輸出和標準錯誤,並可以利用subprocess.pipe將多個子程序的輸入和輸出連線在一起,構成管道(pipe):
[python]view plain
copy
child1 = subprocess.popen([
"dir"
,"/w"
], stdout=subprocess.pipe,shell=
true
) child2 = subprocess.popen(["wc"
], stdin=child1.stdout,stdout=subprocess.pipe,shell=
true
) out = child2.communicate()
(out)
(' 9 24 298\n'
, none
)
如果想頻繁地和子執行緒通訊,那麼不能使用communicate();因為communicate通訊一次之後即關閉了管道.這時可以試試下面的方法:
[plain]view plain
copy
p= subprocess.popen(["wc"], stdin=subprocess.pipe,stdout=subprocess.pipe,shell=true)
p.stdin.write('your command')
p.stdin.flush()
#......do something
try:
#......do something
p.stdout.readline()
#......do something
except:
print('ioerror')
#......do something more
p.stdin.write('your other command')
p.stdin.flush()
#......do something more
Python常用模組之五 subprocess
python引入subprocess模組來管理子程序,以取代一些舊模組的方法 如 os.system os.spawn os.popen popen2.commands.不但可以呼叫外部的命令作為子程序,而且可以連線到子程序的input output error管道,獲取相關的返回資訊。subpro...
python中 python中的 與
這一部分首先要理解python記憶體機制,python中萬物皆物件。對於不可變物件,改變了原來的值,其別名 變數名 繫結到了新值上面,id肯定會改變 對於可變物件,操作改變了值,id肯定會變,而 是本地操作,其值原地修改 對於 號操作,可變物件和不可變物件呼叫的都是 add 操作 對於 號操作,可變...
python中否定for 在python中否定函式
有沒有一種方法可以否定乙個函式,使它返回負數。在我的函式中,我有條件句,每個條件句都讓這個 烏龜 移動。有沒有一種方法可以否定這一點,所以烏龜的每乙個動作都是否定的。我說的是 狀況 在def ttinterpret program interpret program as a tinyturtle ...