# 僅僅在乙個子終端執行系統命令,而不能獲取命令執行後的返回資訊
# 如果再命令列下執行,結果直接列印出來
例如:
>>> import os輸出結果:>>> os.system('ls')
chk_err_log.py cmdtool.log install_log.txt install_zabbix.sh manage_deploy.sh megasas.log
#該方法不但執行命令還返回執行後的資訊物件
#好處在於:將返回的結果賦於一變數,便於程式的處理。
例如:
>>> 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']
subprocess是乙個功能強大的子程序管理模組,是替換os.system ,os.spawn* 等方法的乙個模組。
使用方法:
>>> 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()
getoutput 獲取執行命令後的返回資訊
getstatus 獲取執行命令的狀態值(執行命令成功返回數值0,否則返回非0)
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')
import commands注意1:在類unix的系統下使用此方法返回的返回值(status)與指令碼或命令執行之後的返回值不等,這是因為呼叫了os.wait()的緣故,具體原因就得去了解下系統wait()的實現了。需要正確的返回值(status),只需要對返回值進行右移8位操作就可以了。(status, output) = commands.getstatusoutput('cat /proc/cpuinfo')
print status,output
注意2:當執行命令的引數或者返回中包含了中文文字,那麼建議使用subprocess,如果使用os.popen則會出現錯誤。
# 僅僅在乙個子終端執行系統命令,而不能獲取命令執行後的返回資訊
# 如果再命令列下執行,結果直接列印出來
例如:
>>> import os輸出結果:>>> os.system('ls')
chk_err_log.py cmdtool.log install_log.txt install_zabbix.sh manage_deploy.sh megasas.log
#該方法不但執行命令還返回執行後的資訊物件
#好處在於:將返回的結果賦於一變數,便於程式的處理。
例如:
>>> 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']
subprocess是乙個功能強大的子程序管理模組,是替換os.system ,os.spawn* 等方法的乙個模組。
使用方法:
>>> 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()
getoutput 獲取執行命令後的返回資訊
getstatus 獲取執行命令的狀態值(執行命令成功返回數值0,否則返回非0)
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')
import commands注意1:在類unix的系統下使用此方法返回的返回值(status)與指令碼或命令執行之後的返回值不等,這是因為呼叫了os.wait()的緣故,具體原因就得去了解下系統wait()的實現了。需要正確的返回值(status),只需要對返回值進行右移8位操作就可以了。(status, output) = commands.getstatusoutput('cat /proc/cpuinfo')
print status,output
注意2:當執行命令的引數或者返回中包含了中文文字,那麼建議使用subprocess,如果使用os.popen則會出現錯誤。
python 呼叫系統命令
使用 os.system 呼叫系統命令 程式中無法獲得到輸出和返回值 import os os.system ls l proc cpuinfo os.system ls l proc cpuinfo r r r 1 root root 0 3月 29 16 53 proc cpuinfo 0使用 ...
python呼叫系統命令
1.os.system 例如 os.system ls 如果在命令列下執行,結果直接列印出來 裡面的引數即為dos命令。這樣的話是不能將得到的東西顯示出來的。但是如果是執行一些其他的操作dos操作的話應該可以實現的。2.為了能夠得到返回的結果集可以這樣來處理的 os.popen popen comm...
python 呼叫系統命令os
一 獲取環境變數 import os env dist os.environ 列印所有環境變數,遍歷字典 for key in env dist print key env dist key 二 os.system cmd 與os.popen cmd 的區別 os.system cmd 返回結果為0...