1、os.popen、os.system subprocess?

背景:查看一个项目的代码,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')

  

>>> 

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

你可能感兴趣的:(1、os.popen、os.system subprocess?)