Python中執行系統命令常見的幾種方法

2021-09-03 04:49:53 字數 1537 閱讀 4156

python中執行系統命令常見的幾種方法:  

(1)os.system  

# 僅僅在乙個子終端執行系統命令,而不能獲取命令執行後的返回資訊

# 如果再命令列下執行,結果直接列印出來

例如:  

>>> import os  

>>> os.system('ls')  

chk_err_log.py cmdtool.log  install_log.txt  install_zabbix.sh  manage_deploy.sh  megasas.log  

(2)os.popen  

#該方法不但執行命令還返回執行後的資訊物件

#好處在於:將返回的結果賦於一變數,便於程式的處理。

例如:  

>>> import os  

>>>tmp = os.popen('ls *.sh').readlines()  

>>>tmp  

['install_zabbix.sh\n', 'manage_deploy.sh\n', 'mysql_setup.sh\n', 'python_manage_deploy.sh\n', 'setup.sh\n']  

(3)使用模組subprocess  

使用方法:  

>>> import subprocess  

>>> subprocess.call (["cmd", "arg1", "arg2"],shell=true)  

好處在於:運用對執行緒的控制和監控,將返回的結果賦於一變數,便於程式的處理。  

如獲取返回和輸出:  

import subprocess  

p = subprocess.popen('ls *.sh', shell=true, stdout=subprocess.pipe, stderr=subprocess.stdout)  

print p.stdout.readlines()  

for line in p.stdout.readlines():  

print line,  

retval = p.wait()  

(4)  使用模組commands模組  

常用的主要有兩個方法:getoutput和getstatusoutput  

>>> import commands  

>>> commands.getoutput('ls *.sh')  

'install_zabbix.sh\nmanage_deploy.sh\nmysql_setup.sh\npython_manage_deploy.sh\nsetup.sh'

>>> commands.getstatusoutput('ls *.sh')  

(0, 'install_zabbix.sh\nmanage_deploy.sh\nmysql_setup.sh\npython_manage_deploy.sh\nsetup.sh')  

注意: 當執行命令的引數或者返回中包含了中文文字,那麼建議使用subprocess,如果使用os.popen則會出現錯誤。  

Python執行系統命令

執行系統命令中比較常用的就是os.system 和os.popen 兩種方法 那麼有什麼區別呢?首先都需要匯入os包 import osos.system os.system 方法可以直接使用,會直接執行系統命令並輸出結果,但是沒有返回值 比如說 os.system ls connect.py he...

lua中執行系統命令

lua中,os.execute可以執行dos命令,但是返回的是系統狀態碼,預設輸出 io.popen 也可以執行dos命令,但是返回乙個檔案。eg local t io.popen svn help local a t read all a返回乙個字串,內容是svn help的內容 如果想執行某命令...

python指令碼中執行命令

建議使用subprocess模組。使用方法如下 subprocess.call ls l 0 subprocess.call exit 1 shell true 1 第一種,預設shell false。注意,shell false推薦使用列表的方式,而不是像第二種的字串形式。第二種,使用shell ...