import os
## os.system() #輸出命令結果到螢幕,返回命令的執行狀態
## os.popen("dir").read #會儲存命令的執行結果並輸出
# 在linux裡面
import subprocess
subprocess.run(
["ipconfig"
,"ping 192.168.1.1"])
#同時執行多條命令
subprocess.run(
"df -h |grep book"
,shell=
true
)#把book檔案過濾出來(涉及到管道符直接把字串傳給真正在呼叫的shell)
##subprocess模組常用命令
#執行命令,返回命令執行狀態 , 0 or 非0 和os.sys一樣
retcode = subprocess.call(
["ls"
,"-l"])
#執行命令,如果命令結果為0,就正常返回,否則拋異常
subprocess.check_call(
["ls"
,"-l"])
0##(必須會用的)接收字串格式命令,返回元組形式,第1個元素是執行狀態,第2個是命令結果(有執行狀態也有結果)
subprocess.getstatusoutput(
'ls /bin/ls')(
0,'/bin/ls'
)#接收字串格式命令,並返回結果
subprocess.getoutput(
'ls /bin/ls'
)'/bin/ls'
#執行命令,並返回結果,注意是返回結果,不是列印,下例結果返回給res
res=subprocess.check_output(
['ls'
,'-l'])
resb'total 0\ndrwxr-xr-x 12 alex staff 408 nov 2 11:05 oldboycrm\n'
##把結果存在管道裡,用stdout讀取
res=subprocess.popen(
"ifconfig|grep 192"
,shell=
true
,stdout=subprocess.pipe)
res.stdout.read(
)##stdout對螢幕的標準輸出
##stdin 標準輸入
##stderr 把錯誤單獨分開
res=subprocess.popen(
"ifcontttfig|grep 192"
,shell=
true
,stdout=subprocess.pipe,stderr=subprocess.pipe)
res.stdout.read(
)#因為命令錯誤所以讀取為空
res.stderr.read(
)#讀取錯誤資訊
# poll()
res=subprocess.popen(
"slppe 10;echo 'hello'"
,shell=
true
,stdout=subprocess.pipe,stderr=subprocess.pipe)
print
(res.poll())
#輸出none代表命令程式沒有執行完,返回0表示命令程式執行完。
res.wait(
)#等待命令執行完後返回0
res.terminate(
)#殺死正在執行程式,讀取程式資訊是空
# cwd
res=subprocess.popen(
"slppe 10;echo 'hello'"
,shell=
true
,stdout=subprocess.pipe,stderr=subprocess.pipe,cwd=
"/temp"
)res.stdout.read(
)#b'/tmp\n'新啟動的shell目錄所在的地方
#sudo自動輸入密碼
echo"123"
| sudo -s apt-get install vim #自動輸密碼
subprocess.popen(
"echo'123' | sudo -s apt-get install vim"
,shell=
true
)#在linux下呼叫python實現自動輸入密碼
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 ...