(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 ...