背景:查看一个项目的代码,python获取连接到电脑的设备列表时,发现用到了os.popen和subprocess?故作简单了解和实践
一、os.popen、os.system
1、os.system 返回命令执行状态码,而将命令执行结果输出到屏幕;执行成功返回值为0
os.popen 返回 的是文件的对象
>>> print os.system('adb devices')
List of devices attached
06157df6e2d18e3cdevice
0 #返回值为0
2、os.popen()可以获取命令执行结果,无法获取命令执行状态码;返回值是一个文件,后续可对文件进行读取
>>> print os.popen('adb devices')
<open file 'adb devices', mode 'r' at 0x1075cf5d0>
>>>
3、os.popen().readlines()继续读取文件
>>> print(os.popen("adb devices").readlines())
['List of devices attached\n', '06157df6e2d18e3c\tdevice\n', '\n']
二、subprocess :New in version 2.4.
subprocess.getstatusoutput:执行命令后返回一个元组(命令执行状态, 命令执行结果输出)
>>> subprocess.getstatusoutput("adb devices")
(0, 'List of devices attached\n06157df6e2d18e3c\tdevice\n')
英文文档:https://docs.python.org/2/library/subprocess.html
详细学习可参考文章:http://www.cnblogs.com/yyds/p/7288916.html
网友评论