系統命令操作

2021-07-12 06:20:31 字數 2738 閱讀 5831

系統命令

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 而是自己來關機。不鼓勵使用這個選項 而且該選項所產生的後果往往不總是你所預期得到...