Python基础教程之执行系统命令四种方法比较

2018-04-09 11:04:44 595浏览

今天扣丁学堂给大家详解介绍一下关于Python基础教程中执行系统命令常见的几种方法都有哪些?注意:以下实例代码在Python3.5下运行通过。



一、os.system方法

os.system(cmd)
在子终端运行系统命令,可以获取命令执行后的返回信息以及执行返回的状态
>>>importos
>>>os.system('date')
2018年4月8日星期日19时29分13秒CST
0#运行状态号,0表示正确
执行后返回两行结果,第一行是结果,第二行是执行状态信息

二、os.popen方法

os.popen(cmd)
不仅执行命令而且返回执行后的信息对象(常用于需要获取执行命令后的返回信息),是通过一个管道文件将结果返回
>>>importos
>>>nowtime=os.popen('date')
>>>print(nowtime.read())
2018年4月8日星期日19时30分35秒CST

三、commands模块

方法说明
getoutput获取执行命令后的返回信息
getstatus获取执行命令的状态值(执行命令成功返回数值0,否则返回非0)
getstatusoutput获取执行命令的状态值以及返回信息
>>>importcommonds
>>>status,output=commands.getstatusoutput('date')
>>>print(status)#0
>>>print(output)#2018年4月8日星期日19时31分45秒CST

注意1:在类unix的系统下使用此方法返回的返回值(status)与脚本或命令执行之后的返回值不等,这是因为调用了os.wait()的缘故,具体原因就得去了解下系统wait()的实现了。需要正确的返回值(status),只需要对返回值进行右移8位操作就可以了。

注意2:当执行命令的参数或者返回中包含了中文文字,那么建议使用subprocess。

四、subprocess模块

运用对线程的控制和监控,将返回的结果赋于一变量,便于程序的处理。有丰富的参数可以进行配置,可供我们自定义的选项多,灵活性高。之前我使用os.system的时候遇到文件描述符被子进程继承的问题,后来通过close_fds=False这个参数来解决的。

>>>importsubprocess
>>>nowtime=subprocess.Popen('date',shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
>>>print(nowtime.stdout.read())
2018年4月8日星期日19时32分41秒CST

以上就是关于python基础教程之执行系统命令四种方法比较的详细介绍,最后想要了解更多关于Python发展前景趋势,请关注扣丁学堂Python培训官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供最新的Python视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的Python视频教程课程,让你快速掌握Python从入门到精通开发实战技能。扣丁学堂Python开发工程师技术交流群:279521237


扣丁学堂微信公众号



关注微信公众号获取更多学习资料



查看更多关于"Python开发资讯"的相关文章>

标签: Python视频教程 python核心教程 Python基础教程 Python爬虫 Python培训 Python开发工程师

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号