python调用系统_python 执行系统命令
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调用系统_python 执行系统命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java开发中定时器的使用
- 下一篇: ndarray python 映射_在M