系統命令
1、call
執行命令,返回狀態碼
ret = subprocess.call(['ls', '-l'], shell=false)
ret = subprocess.call('ls -l', shell=true)
2、check_call
執行命令,如果執行狀態碼是0,則返回0,否則拋異常
subprocess.check_call(["ls", "-l"])
subprocess.check_call("exit 1", shell=true)
3、check_output
執行命令,如果狀態是0,則返回執行結果,否則拋異常
subprocess.check_output(["echo", "hello world !"])
subprocess.check_output(["exit 1", shell=true])
^^^^^^^^^
subprocess.popen(....)
用於執行複雜的系統命令
引數:
@args: shell命令,可以是字串或者序列型別(如:list, 元組)
@bufsize: 指定緩衝。0 無快取, 1行緩衝, 其他緩衝區大小,負值系統緩衝
@stdin,stdout,stderr: 分別表示程式的標準輸入、輸出、錯誤控制代碼
@preexec_fn:只有unix平台下有效,用於指定乙個可執行物件(callable object),他將在子程序執行之前被呼叫
@close_sfs : 在windows平台下,如果close_fds被設定為true,則新建立的子程序將不會繼承父程序的輸入、輸出、錯誤管道
所以不能將close_fds設定為true同時重定向子程序的標準輸入、輸出與錯誤(stdin,stdout,stderr)
@shell:同上
@cwd:用於設定子程序的當前目錄
@env:用於指定子程序的環境變數。如果env = none, 子程序的環境變數將從父程序中繼承。
@universal_newlines:不同系統的換行符不同,true -》同意使用\n
@startupinfo與createionflags只在windows下有效
將被傳遞給底層的createprocess()函式,用於設定子程序的一些屬性,如:主視窗的外觀,程序的優先順序等等
案例:import subprocess
ret1 = subprocess.popen(["mkdir", "t1"])
ret2 = subprocess.popen("mkdir t2", shell=true)
終端輸入的命令分為兩種:
輸入即可得到輸出,如:ifconfig
輸入進行某環境,依賴在輸入,如:python
import subprocess
obj = subprocess.popen("mkdir t3", shell=true, cwd='/home/dev')
-------------
import subprocess
obj = subprocess.popen(["python"], stdin=dubprocess.pipe,stdout=subprocess.pipe,stderr=subprocess.pipe, universal_newlines=true)
obj.stdin.write("print(1)\n")
obj.stdin.write("print(2)")
obj.stdin.close()
cmd_out = obj.stdout.read()
obj.stdout.close()
cmd_error = obj.stderr.read()
obj.stderr.close()
print(cmd_out)
print(cmd_error)
------------------
import subprocess
obj = subprocess.popen(["python"], stdin=subprocess.pipe, stdout=subprocess.pipe, stderr=subprocess.pipe, universal_newlines=true)
obj.stdin.write("print(1)\n")
obj.stdin.write("print(2)")
out_error_list = obj.communicate()
print(out_error_list)
--------------
import subprocess
obj = subprocess.popen(["python"], stdin=subprocess.pipe, stdout=subprocess.pipe, stderr=subprocess.pipe, universal_newlines=true)
out_error_list = obj.communicate('print("hello")')
print(out_error_list)
系統操作命令
netstat ano findstr 443 意思是查詢 443 埠的程序 taskkill f pid 6076 意思是殺程序 window下命令啟動 停止nginx 檢視nginx的版本號 nginx v 啟動nginx start nginx 快速停止或關閉nginx nginx s sto...
Python系統命令操作
1 call 執行命令,返回狀態碼 ret subprocess.call ls l shell false ret subprocess.call ls l shell true 2 check call 執行命令,如果執行狀態碼是0,則返回0,否則拋異常 subprocess.check cal...
linux系統操作命令
對系統操作 關機 shutdown t 在改變到其它runlevel之前 告訴init多久以後關機。r 重啟電腦。k 並不真正關機 只是送警告訊號給每位登入者 login h 關機後關閉電源 halt n 不用init 而是自己來關機。不鼓勵使用這個選項 而且該選項所產生的後果往往不總是你所預期得到...